Skip to main content

NGINX Workload Profiles

The following profiles run customer-representative or benchmarking scenarios using the NGINX web server workload with Wrk or Wrk2 HTTP workload generator toolsets.

PERF-WEB-NGINX-WRK.json

Runs the NGINX web server workload with the wrk HTTP benchmarking tool to measure networking throughput and latency performance. This is a client/server workload that requires two separate systems/VMs (a Client and a Server) connected via the same network.

  • Workload Profile

  • Supported Platform/Architectures

    • linux-x64
    • linux-arm64
  • Supported Operating Systems

    • Azure Linux
    • CentOS
    • Debian
    • RedHat
    • Suse
    • Ubuntu
  • Supports Disconnected Scenarios

    • No. Internet connection required.
  • Dependencies
    The dependencies defined in the 'Dependencies' section of the profile itself are required in order to run the workload operations effectively.

    • Internet connection.
  • Profile Parameters
    The following parameters can be optionally supplied on the command line to modify the behaviors of the workload.

    ParameterPurposeDefault Value
    TestDurationOptional. The duration of each individual Wrk test scenario.00:02:30
    TimeoutOptional. The maximum time to wait for the workload to complete.00:30:00
    FileSizeInKBOptional. The size of the file (in KB) served by the NGINX server for each request.1
    EmitLatencySpectrumOptional. Whether to emit the full latency spectrum in the results.false
    WorkersOptional. The number of NGINX worker processes. If null, the default NGINX configuration is used.null
    CommandArgumentsOptional. The command line arguments to pass to the Wrk toolset.
  • Profile Components
    The profile executes the following scenarios across varying numbers of concurrent connections.

    RoleComponentDescription
    ServerNginxServerExecutorHosts the NGINX web server that serves HTTPS requests.
    ClientWrkExecutorRuns the wrk HTTP benchmarking tool against the NGINX server.
  • Profile Runtimes
    See the 'Metadata' section of the profile for estimated runtimes. These timings represent the length of time required to run a single round of profile actions. These timings can be used to determine minimum required runtimes for the Virtual Client in order to get results. These are often estimates based on the number of system cores.

  • Usage Examples
    The following section provides a few basic examples of how to use the workload profile.

    # Execute the workload profile on the Server system
    VirtualClient.exe --profile=PERF-WEB-NGINX-WRK.json --system=Demo --timeout=1440

    # Execute the workload profile on the Client system
    VirtualClient.exe --profile=PERF-WEB-NGINX-WRK.json --system=Demo --timeout=1440

PERF-WEB-NGINX-WRK2.json

Runs the NGINX web server workload with the wrk2 HTTP benchmarking tool to measure networking throughput and latency performance under a constant (rate-limited) request rate. This is a client/server workload that requires two separate systems/VMs (a Client and a Server) connected via the same network. The wrk2 tool differs from wrk in that it applies a constant throughput/rate to produce accurate latency measurements that are not subject to coordinated omission.

  • Workload Profile

  • Supported Platform/Architectures

    • linux-x64
  • Supported Operating Systems

    • Ubuntu
  • Supports Disconnected Scenarios

    • No. Internet connection required.
  • Dependencies
    The dependencies defined in the 'Dependencies' section of the profile itself are required in order to run the workload operations effectively.

    • Internet connection.
  • Profile Parameters
    The following parameters can be optionally supplied on the command line to modify the behaviors of the workload.

    ParameterPurposeDefault Value
    TestDurationOptional. The duration of each individual Wrk2 test scenario.00:02:30
    TimeoutOptional. The maximum time to wait for the workload to complete.00:20:00
    FileSizeInKBOptional. The size of the file (in KB) served by the NGINX server for each request.1
    EmitLatencySpectrumOptional. Whether to emit the full latency spectrum in the results.false
    WorkersOptional. The number of NGINX worker processes. If null, the default NGINX configuration is used.null
    RateOptional. The constant request rate (requests/sec) applied by Wrk2.1000
    CommandArgumentsOptional. The command line arguments to pass to the Wrk2 toolset.
  • Profile Components
    The profile executes the following scenarios across varying numbers of concurrent connections.

    RoleComponentDescription
    ServerNginxServerExecutorHosts the NGINX web server that serves HTTPS requests.
    ClientWrk2ExecutorRuns the wrk2 HTTP benchmarking tool against the NGINX server at a constant request rate.
  • Profile Runtimes
    See the 'Metadata' section of the profile for estimated runtimes. These timings represent the length of time required to run a single round of profile actions. These timings can be used to determine minimum required runtimes for the Virtual Client in order to get results. These are often estimates based on the number of system cores.

  • Usage Examples
    The following section provides a few basic examples of how to use the workload profile.

    # Execute the workload profile on the Server system
    VirtualClient.exe --profile=PERF-WEB-NGINX-WRK2.json --system=Demo --timeout=1440

    # Execute the workload profile on the Client system
    VirtualClient.exe --profile=PERF-WEB-NGINX-WRK2.json --system=Demo --timeout=1440

PERF-WEB-NGINX-WRK-RP.json

Runs the NGINX web server workload with the Wrk HTTP benchmarking tool in a reverse proxy configuration to measure networking throughput and latency performance. This workload requires three separate systems/VMs (a Client, a Reverse Proxy, and a Server) connected via the same network. The Client sends requests to the NGINX reverse proxy, which forwards the requests to the backend NGINX server.

warning

This profile requires three nodes for the roles Client, Reverse Proxy, and Server.

  • Workload Profile

  • Supported Platform/Architectures

    • linux-x64
    • linux-arm64
  • Supported Operating Systems

    • Azure Linux
    • CentOS
    • Debian
    • RedHat
    • Suse
    • Ubuntu
  • Supports Disconnected Scenarios

    • No. Internet connection required.
  • Dependencies
    The dependencies defined in the 'Dependencies' section of the profile itself are required in order to run the workload operations effectively.

    • Internet connection.
  • Profile Parameters
    The following parameters can be optionally supplied on the command line to modify the behaviors of the workload.

    ParameterPurposeDefault Value
    TestDurationOptional. The duration of each individual Wrk test scenario.00:02:30
    TimeoutOptional. The maximum time to wait for the workload to complete.00:30:00
    FileSizeInKBOptional. The size of the file (in KB) served by the NGINX server for each request.1
    EmitLatencySpectrumOptional. Whether to emit the full latency spectrum in the results.false
    WorkersOptional. The number of NGINX worker processes. If null, the default NGINX configuration is used.null
    CommandArgumentsOptional. The command line arguments to pass to the Wrk toolset.
  • Profile Components
    The profile executes the following scenarios across a combination of connection counts.

    RoleComponentDescription
    ServerNginxServerExecutorHosts the backend NGINX web server that serves HTTPS requests.
    ReverseProxyNginxServerExecutorHosts the NGINX reverse proxy that forwards client requests to the backend server.
    ClientWrkExecutorRuns the Wrk HTTP benchmarking tool against the NGINX reverse proxy.
  • Profile Runtimes
    See the 'Metadata' section of the profile for estimated runtimes. These timings represent the length of time required to run a single round of profile actions. These timings can be used to determine minimum required runtimes for the Virtual Client in order to get results. These are often estimates based on the number of system cores.

  • Usage Examples
    The following section provides a few basic examples of how to use the workload profile.

    # Execute the workload profile on the Server system
    VirtualClient.exe --profile=PERF-WEB-NGINX-WRK-RP.json --system=Demo --timeout=1440

    # Execute the workload profile on the Reverse Proxy system
    VirtualClient.exe --profile=PERF-WEB-NGINX-WRK-RP.json --system=Demo --timeout=1440

    # Execute the workload profile on the Client system
    VirtualClient.exe --profile=PERF-WEB-NGINX-WRK-RP.json --system=Demo --timeout=1440

PERF-WEB-NGINX-WRK2-RP.json

Runs the NGINX web server workload with the wrk2 HTTP benchmarking tool in a reverse proxy configuration to measure networking throughput and latency performance under a constant (rate-limited) request rate. This workload requires three separate systems/VMs (a Client, a Reverse Proxy, and a Server) connected via the same network. The Client sends requests at a constant rate to the NGINX reverse proxy, which forwards the requests to the backend NGINX server. The wrk2 tool differs from wrk in that it applies a constant throughput/rate to produce accurate latency measurements that are not subject to coordinated omission.

warning

This profile requires three nodes for the roles Client, Reverse Proxy, and Server.

  • Workload Profile

  • Supported Platform/Architectures

    • linux-x64
  • Supported Operating Systems

    • Ubuntu 22
  • Supports Disconnected Scenarios

    • No. Internet connection required.
  • Dependencies
    The dependencies defined in the 'Dependencies' section of the profile itself are required in order to run the workload operations effectively.

    • Internet connection.
  • Profile Parameters
    The following parameters can be optionally supplied on the command line to modify the behaviors of the workload.

    ParameterPurposeDefault Value
    TestDurationOptional. The duration of each individual Wrk2 test scenario.00:02:30
    TimeoutOptional. The maximum time to wait for the workload to complete.00:20:00
    FileSizeInKBOptional. The size of the file (in KB) served by the NGINX server for each request.1
    EmitLatencySpectrumOptional. Whether to emit the full latency spectrum in the results.false
    WorkersOptional. The number of NGINX worker processes. If null, the default NGINX configuration is used.null
    RateOptional. The constant request rate (requests/sec) applied by Wrk2.1000
    CommandArgumentsOptional. The command line arguments to pass to the Wrk2 toolset.
  • Profile Components
    The profile executes the following scenarios across combinations of connection counts (100, 1K, 5K, 10K) and thread counts (LogicalCoreCount, LogicalCoreCount/2, LogicalCoreCount/4, LogicalCoreCount/8):

    RoleComponentDescription
    ServerNginxServerExecutorHosts the backend NGINX web server that serves HTTPS requests.
    ReverseProxyNginxServerExecutorHosts the NGINX reverse proxy that forwards client requests to the backend server.
    ClientWrk2ExecutorRuns the Wrk2 HTTP benchmarking tool against the NGINX reverse proxy at a constant request rate.
  • Profile Runtimes
    See the 'Metadata' section of the profile for estimated runtimes. These timings represent the length of time required to run a single round of profile actions. These timings can be used to determine minimum required runtimes for the Virtual Client in order to get results. These are often estimates based on the number of system cores.

  • Usage Examples
    The following section provides a few basic examples of how to use the workload profile.

    # Execute the workload profile on the Server system
    VirtualClient.exe --profile=PERF-WEB-NGINX-WRK2-RP.json --system=Demo --timeout=1440

    # Execute the workload profile on the Reverse Proxy system
    VirtualClient.exe --profile=PERF-WEB-NGINX-WRK2-RP.json --system=Demo --timeout=1440

    # Execute the workload profile on the Client system
    VirtualClient.exe --profile=PERF-WEB-NGINX-WRK2-RP.json --system=Demo --timeout=1440