Skip to content

AngusTester Single-Machine Throughput Test: 600,000+ Requests Per Second

Test Objectives

  1. Validate AngusTester's performance in HTTP protocol benchmarking (minimum latency <1ms).
  2. Demonstrate standard workflow for GUI-based testing in AngusTester. For CLI testing procedures and results, see:
    AngusTester vs JMeter HTTP Benchmark Comparison

1. Test Environment

For measurement accuracy, Nginx serves as the HTTP server with separate deployment of test machine and server.

1. Node Configuration

NodeOSSpecificationsIPApplication
Test NodeCentOS 7.6 64-bit32 vCPUs @ 3.1 GHz (Intel® Xeon® Platinum), 64GiB RAM172.26.167.78AngusTester
Service NodeCentOS 7.6 64-bit32 vCPUs @ 3.1 GHz (Intel® Xeon® Platinum), 64GiB RAM172.26.167.79Nginx

2. Software Configuration

  • Test Service: nginx-1.21.3
  • Testing Tool: AngusTester-1.0.0

3. Nginx Configuration

ini
worker_processes  24;
worker_rlimit_nofile 200000;

events {
    worker_connections  4096;
    use epoll;
    multi_accept on;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    access_log off;

    sendfile       on;
    tcp_nopush     on;
    tcp_nodelay    on;

    keepalive_timeout  65;
    keepalive_requests 100000;
    reset_timedout_connection on;

    server {
        listen       80;
        server_name  localhost;

        open_file_cache max=200000 inactive=20s;
        open_file_cache_valid 30s;
        open_file_cache_min_uses 2;
        open_file_cache_errors on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }
}

4. Test Endpoint

bash
curl -i http://172.26.167.79:80
HTTP/1.1 200 OK
Server: nginx/1.21.3
Date: Mon, 29 Jan 2024 01:31:46 GMT
Content-Type: text/html
Content-Length: 75
Last-Modified: Mon, 29 Jan 2024 01:29:49 GMT
Connection: keep-alive
ETag: "65b6ff8d-4b"
Accept-Ranges: bytes

<!DOCTYPE html>
<html>
<body>
<p><em>Hello,World!</em></p>
</body>
</html>

2. Test Procedure

1. Add Test Nodes

Add both nodes in AngusTester's Nodes section and install agents:
103-A00.png

Note: The "Service Node" hosts the Nginx service.

2. Create Test Script

Create a script named "AngusTester Nginx Benchmark" under Scripts:

yaml
specification: angus/1.0.0
type: TEST_PERFORMANCE
plugin: Http
configuration:
  duration: 50min
  thread:
    threads: 5000
    rampUpInterval: 1min
    rampUpThreads: 100
  onError:
    sampleError: false
  priority: 1000
task:
  pipelines:
  - target: HTTP
    request:
      method: GET
      url: http://172.26.167.79:80

Configuration: 100 threads added per minute, max 5000 threads, total duration 50 minutes

3. Configure Execution Task

Create an execution task under Executions, selecting the script and nodes:
103-A02.png

4. Monitor Task Status

View real-time task status in the executions list ("In Progress"):
103-A03-02.png

3. Test Results

1. Summary Report

Aggregated metrics from the final sampling:
103-A04-00.png

2. Throughput (TPS)

Transactions Per Second (TPS) measures system processing capacity:
103-A04-01.png

3. Thread Metrics

Threads simulate concurrent users for load testing:
103-A04-02.png

4. Response Time (RT)

Time interval between request transmission and response receipt (ms):
103-A04-03.png

5. Resource Utilization (CPU)

Monitor system bottlenecks through CPU/Memory/Disk/Network metrics:
103-A04-04.png

6. Overlay Analysis

Correlate Transactions Per Second (TPS) with thread concurrency:
103-A04-05.png


Experience Performance-Optimized Testing:
🔗 AngusTester Console 🔗

Last updated:

Released under the GPL-3.0 License.