Skip to content

Fix nginx.QAT-sample.conf for high concurrency#92

Open
sjbae1999 wants to merge 1 commit intointel:masterfrom
sjbae1999:qat-async-fd-fix
Open

Fix nginx.QAT-sample.conf for high concurrency#92
sjbae1999 wants to merge 1 commit intointel:masterfrom
sjbae1999:qat-async-fd-fix

Conversation

@sjbae1999
Copy link

The asynch_mode_nginx provides high CPS for small, short-lived flows, and Intel enables QAT by default on most of Intel Xeon processors.

However, current example nginx configuration file, nginx.QAT-sample.conf is not practical real-world high-CPS workloads for the following reasons:

  1. We need to execute nginx with sudo privilege (to access QAT HW):
    As a result, the nginx worker processes are limited to a soft limit of 1024 file descriptors by default.
  2. High CPS workloads typically involve a large number of concurrent connections:
    In my testing, asynch_mode_nginx with the provided nginx.QAT-sample.conf supports only up to 476 concurrent connections. When the concurrency exceeds this level, nginx fails to register new event file descriptors due to file descriptor exhaustion.

Changes made

  1. I added the following line to nginx.QAT-sample.conf:

worker_rlimit_nofile 1048576

This sets the file descriptor limit for nginx worker processes to 1048576, which is the default hard limit on Ubuntu 24.04.3 LTS.
With this change, I verified that asynch_mode_nginx operates correctly with up to 2K concurrent connections.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant