Reference: Webworker Configuration
L7|ESP’s web workers are currently set, for most requests, to handle one request per worker*.
Thus, the number of workers should be carefully considered when examining concurrent traffic load.
At rest, an L7|ESP worker consumes ~250-500mb of RAM, depending on a number of implementation-specific factors. Under large workflow loads such as large batch sizes and/or large workflows, the worker memory can spike to ~2GB of RAM. If users observe memory spikes in excess of 2-3GB per worker, please notify L7.
This means a baseline system with L7|ESP running three web workers will require ~6-8 GB of RAM for routine operations, excluding the DB needs, to properly service ~5 users.
Another consideration is automated processes (pipelines). In a three web worker configuration, all API requests from pipelines are sent to a single web worker and user requests may also be sent to this web worker.
For production configurations, L7|ESP recommends a minimum of four workers. With four workers and a single “executor” thread for pipeline tasks, a maximum of one pipeline tasks will be executed at a time and all pipeline API requests will be sent to the fourth worker. All UI API requests will be routed to the first three workers. For a configuration supporting 10 users with a standalone DB server and an application server with 16GB of RAM, L7 recommends a minimum of six web workers as follows:
For systems where the DB server is co-located with the application server, the system should have a minimum of 32GB of RAM for production use in environments where large worksheets are anticipated.
For instance, a server anticipating large loads should run with 32GB of RAM, an effective_cache_size (postgresql.conf) or 16GB, shared_buffers of 8GB, and number of web workers = 3-6 and number of executors = 1-2 depending on anticipated concurrent user use.
*Some routes such as adding/removing samples to/from LIMS worksheets allow concurrent requests to the same worker; the routes that support this will were expanded in L7|ESP 2.5.