MATLAB®
Production Server™ supports asynchronous execution
of client requests. The following configurations in the server’s main_config
file
impact the how the server supports this functionality:
request-timeout
server-memory-threshold
server-memory-threshold-overflow-action
The request-timeout
configuration parameter
specifies the duration after which a request in a terminal states
times out and gets deleted.
The server-memory-threshold
configuration
parameter specifies the size threshold of the server process at which
point action needs to be taken to manage the responses. The size threshold
includes both the size of the base server process plus any growth
in the server process resulting from processing a client request.
The server-memory-threshold-overflow-action
configuration
parameter specifies the action to be taken when the memory size threshold
of server process has been breached. The possible actions are that
the responses be archived to disk or the request be purged.
Setting too small a request-timeout
can lead
to a request being timed out before a client fetches the response.
Since the server-memory-threshold
includes
both the size of the base server process plus any growth in the server
process resulting from processing client requests, setting too small
a server-memory-threshold
can lead to responses
being archived or purged before being retrieved.
Since the operating system governs memory management, the memory
footprint size of the base server process may not return to its original
size even after a response has been archived or purged. The size of
the base server process in most cases ends up being larger than its
original size. As a result, subsequent requests to the server may
have a much smaller range of memory to work with before reaching the server-memory-threshold
.
Setting the server-memory-threshold
to be
too large will result in a large server process footprint which may
not be required.
These configuration parameters need to be set appropriately and carefully balanced in order to provide a suitable contract between a client and a server.