Skip to content

Instantly share code, notes, and snippets.

@pedes
Last active February 17, 2023 12:11
Show Gist options
  • Save pedes/f213431ee7e868bd1331127263fdabfb to your computer and use it in GitHub Desktop.
Save pedes/f213431ee7e868bd1331127263fdabfb to your computer and use it in GitHub Desktop.

Performance Benchmark test for Mule App over HTTPS

Specs

  • Simple PUT request with a JSON payload with 2 strings
  • 1 Flow
  • HTTPS with p12 Keystore using a RSA public certificate 2048 bits key
  • Running on MacBook Pro (16-inch, 2019), 2,4 GHz 8-Core Intel Core i9, 64 GB 2667 MHz DDR4
  • Java 8 openjdk version 1.8.0_312
  • Using ab apache benchmark, more details at https://httpd.apache.org/docs/2.4/programs/ab.html
  • data: { "lastName": "Smith", "numBags": 2 }

Tests and Results

ab -u data -T application/json -c 10 -n 2000 https://localhost:8082/api/v1/tickets/pnr9999/checkin Results HTTPS 10 users 2000 requests

Server Hostname: localhost
Server Port: 8082
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key: ECDH P-256 256 bits
TLS Server Name: localhost
Document Path: /api/v1/tickets/pnr9999/checkin
Document Length: 43 bytes
Concurrency Level: 10
Time taken for tests: 11.509 seconds
Complete requests: 2000
Failed requests: 0
Total transferred: 370000 bytes
Total body sent: 410000
HTML transferred: 86000 bytes
Requests per second: 173.77 [#/sec] (mean)
Time per request: 57.546 [ms] (mean)
Time per request: 5.755 [ms] (mean, across all concurrent requests)
Transfer rate: 31.39 [Kbytes/sec] received

ab -u data -T application/json -c 15 -n 4000 https://localhost:8082/api/v1/tickets/pnr9999/checkin

Server Hostname: localhost
Server Port: 8082
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key: ECDH P-256 256 bits
TLS Server Name: localhost
Document Path: /api/v1/tickets/pnr9999/checkin
Document Length: 43 bytes
Concurrency Level: 10
Time taken for tests: 11.509 seconds
Complete requests: 2000
Failed requests: 0
Total transferred: 370000 bytes
Total body sent: 410000
HTML transferred: 86000 bytes
Requests per second: 173.77 [#/sec] (mean)
Time per request: 57.546 [ms] (mean)
Time per request: 5.755 [ms] (mean, across all concurrent requests)
Transfer rate: 31.39 [Kbytes/sec] received

Tests and Results for HTTP (contrast the performance vs HTTPS)

ab -u data -T application/json -c 10 -n 2000 http://localhost:8081/api/v1/tickets/pnr9999/checkin

Server Hostname: localhost
Server Port: 8081
Document Path: /api/v1/tickets/pnr9999/checkin
Document Length: 43 bytes
Concurrency Level: 10
Time taken for tests: 1.623 seconds
Complete requests: 2000
Failed requests: 0
Total transferred: 370000 bytes
Total body sent: 410000
HTML transferred: 86000 bytes
Requests per second: 1232.12 [#/sec] (mean)
Time per request: 8.116 [ms] (mean)
Time per request: 0.812 [ms] (mean, across all concurrent requests)
Transfer rate: 222.60 [Kbytes/sec] received

ab -u data -T application/json -c 15 -n 4000 http://localhost:8081/api/v1/tickets/pnr9999/checkin

Server Hostname: localhost
Server Port: 8081
Document Path: /api/v1/tickets/pnr9999/checkin
Document Length: 43 bytes
Concurrency Level: 15
Time taken for tests: 1.662 seconds
Complete requests: 4000
Failed requests: 0
Total transferred: 740000 bytes
Total body sent: 820000
HTML transferred: 172000 bytes
Requests per second: 2406.39 [#/sec] (mean)
Time per request: 6.233 [ms] (mean)
Time per request: 0.416 [ms] (mean, across all concurrent requests)
Transfer rate: 434.75 [Kbytes/sec] received
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment