Uh oh!
There was an error while loading. Please reload this page.
Nginx QAT - #48
Conversation
Add the NGINX + Intel QAT workload guide covering hardware and software prerequisites, async-mode-nginx build and configuration, and CPS benchmarking results. Includes the with/without QAT configuration pair used for the comparison and the openssl s_time driver script for the handshake test.
Updates to instance section in Details.
Replace the CPS chart with a version that drops the C3 SPR bar, so every bar plotted has a corresponding configuration disclosure. Update the Results text to reference the Xeon 6985P (c4-highmem-288-metal) rather than the 6980P, matching the Details section, and reword the worker_processes note so it no longer implies a specific core-count ratio. Correct the C4D entry to say Turin rather than GNR and drop QATEngine from its software list, since QAT is not available on that platform.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Pull request overview
Adds an NGINX + Intel® QAT optimization/benchmarking bundle under software/nginx, including documentation, sample configs (with/without QAT), and a CPS measurement script to compare baseline vs QAT-accelerated TLS.
Changes:
- Added a detailed QAT setup + async-mode-nginx build/benchmark guide (
README.md). - Added two NGINX configuration examples for baseline and QAT-enabled runs (
nginx_without_qat.conf,nginx_with_qat.conf). - Added a CPS benchmarking helper script based on
openssl s_time(connection_test.sh).
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| software/nginx/README.md | Documents QAT requirements, setup, and benchmark methodology/results. |
| software/nginx/nginx_without_qat.conf | Baseline async-mode-nginx config with QAT modules disabled. |
| software/nginx/nginx_with_qat.conf | QAT-enabled async-mode-nginx config loading QAT modules/engine and qatzip settings. |
| software/nginx/connection_test.sh | Script to run parallel openssl s_time clients and compute aggregate CPS. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Move the detailed NGINX QAT guide into software/nginx/QAT/, with its config files and test script under QAT/supporting_files/ and the results chart under QAT/images/. Rename the chart to nginx_qat_comparison_intel_amd.png to describe what it shows. Add a short software/nginx/README.md landing page that points to the QAT guide, leaving room for future non-QAT nginx entries.
Check each QAT device ID independently in a loop rather than chaining lspci calls, so the reported device count does not depend on lspci's exit status and stray errors are suppressed. In connection_test.sh, initialize emulation to 0 so the flag check is safe when the flag is absent, drop the stray backslash in the date format so all three timestamps are written the same way, and replace the ps/grep polling loop with wait, which returns once the client processes this script started have exited and cannot match unrelated processes. Expand CPS on first use.
Address the two remaining review comments on the QAT guide. Replace the vague "install them through a kernel configuration" sentence with concrete guidance: how to check which QAT drivers the running kernel was configured with, which CONFIG options the 4xxx-series devices need, the per-device minimum kernel versions, and a link to the QATlib System Requirements page that documents the full kernel, firmware, and boot parameter requirements. Add a Required Environment Variables subsection before the configure snippet describing what NGINX_INSTALL_DIR, OPENSSL_LIB, ICP_ROOT, and QZ_ROOT point to, with an example export block. Note that ICP_ROOT and QZ_ROOT are source trees rather than the package install paths used earlier, and that the lib64 link paths assume a source-installed OpenSSL.
NGINX with QAT support added comparing GNR, GNR with QAT and Turin.