Main Content

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.

See Also