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

Please leave your feedback about this article

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.