Nginx QAT - #48
Open
ssherman8 wants to merge 9 commits into
Open
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.
adgubrud
previously requested changes
Aug 11, 2026
Contributor
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.
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.
adgubrud
self-requested a review
August 17, 2026 18:46
Point the two NGINX configuration files and the CPS test script at the intel/asynch_mode_nginx BSD 3-Clause License. Configure the QAT services through /etc/sysconfig/qat in managed mode, replacing the out-of-tree /etc/4xxx_dev*.conf references to match the QAT team's guidance.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
NGINX with QAT support added comparing GNR, GNR with QAT and Turin.