Estimating the number of CPU cores required by the Application Server
Client requests are handled by the Application Server.
The greater the performance of one CPU core, the faster it will process each request.
However, typically a large number of different clients will be sending requests simultaneously, so the Application Server will have to put them in queue. To be able to process incoming requests concurrently, you need to determine the optimal number of CPU cores for your typical number of clients.
There are three types of clients in the System:
- Automated stations
- Scanning operators
- Verification operators
Below we consider each type of client in detail.
Automated stations
Tests have been performed to estimate the number of CPU cores required by the Application Server to serve the automated stations.
Two installations were tested, with different types of CPU cores used for the Application Server and the Processing Stations.
Application Server | Processing Stations | |
Installation 1 | Intel Xeon® Platinum 8168 (SkyLake) 2.7 GHz | Intel Xeon® Platinum 8168 (SkyLake) 2.7 GHz |
Installation 2 | Intel Xeon® E5-2680 v4 2.4 GHz | Intel Xeon® E5-2680 v4 2.4 GHz |
The tests have shown that 100 processing cores fully load 6 cores of the Application Server if there are no bottlenecks.
With Application Server CPU usage at 80%, the Application Server becomes a bottleneck itself. Therefore, we recommend having 8 cores for the Application Server in installations with 100 processing cores.
Verification operators
From the standpoint of the Application Server, requests arriving from a verification operator are not very much different from requests sent by a processing core.
However, a human operator is slower than a CPU and so, within the same time period, will send fewer requests than a processing core.
For practical purposes it can be assumed that in terms of generated load one processing core roughly equals 5 verification operators.
Example.
Let us estimate the number of cores required by the Application Server accessed by 100 verification operators.
One Processing Station core will generate as much load as 5 verification operators.
Therefore, 100 verification operators equal 20 processing cores.
Taking into consideration the test results described above, we assume that one Application Server core handles requests from 10 Processing Station cores.
It follows, then, that 2 Application Server cores are required to handle requests from 100 verification operators.
Note: For heavy-load projects with more than 100 verification operators and more than 50 scanning operators, we recommend using multiple Application Servers or cluster installations. This will make the System more responsive and improve user experience for the operators.
Scanning operators
From the standpoint of the Application Server, requests arriving from a scanning operator are also not very much different from requests sent by a processing core.
However, requests from scanning operators are unidirectional, as they only upload data to the server.
Just like a verification operator, a scanning operator generates less load than a processing core.
For practical purposes it can be assumed that in terms of generated load one processing core roughly equals 10 scanning operators.
12.04.2024 18:16:02