Impact of Server Configurations on Processing Asynchronous Requests
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:
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.