Siege benchmark test #3: Internet mode

Re-ran the test as I added a 4th OpenVZ based VPS (web4) to the Haproxy load balance. This 4th VPS is with a different web host from the other 3x VPS, but also located in Chicago area. The 4th VPS has more memory but less disk space than the other 3x VPS at 1GB guaranteed but with 30GB disk space but still with CentOS 6.0 32bit OS.

I also adjusted the Haproxy load balancer settings dropping each servers maxconn from 4096 to 512 and adjusted the weight distribution for the 4x VPS. As web3 is both the primary Haproxy load balancer as well as secondary Nginx web server, I reduced web3's weight distribution in the VPS server cluster from 25% to 1/7th ~14.3 % while the other 3x VPS (web1, web2, web4) each had 2/7th ~28.6% weight distribution. For Siege benchmark also reduced the delay from max 5 to 3 seconds. Read below for the results.

Haproxy load balancer stats from Siege benchmark test on 3x Centmin Mod Nginx based web servers

Created text file centminmod.txt - entering site url links one per line.

http://centmin.sh/index.html
http://centmin.sh/faq.html
http://centmin.sh/changelog.html
http://centmin.sh/siegebenchmark_nginx.html
http://centmin.sh/apachebench_nginx.html

Ran Siege benchmark in internet mode with 300 concurrent users and 100 repetitions with a 0-3 second delay. I wrote a logstats.sh bash script which logs top and free -m stats output every 1 second for web1, web2, web3 and web4 servers. The logstats.sh bash script then allows filtering output by cpu and memory stats to figure out peak cpu and memory usage loads.

siege -i -c300 -r100 -d3 -f centminmod.txt
** SIEGE 2.70
** Preparing 300 concurrent users for battle.
The server is now under siege...
HTTP/1.1 200   0.10 secs:    3633 bytes ==> /siegebenchmark_nginx.html
HTTP/1.1 200   0.11 secs:    2822 bytes ==> /apachebench_nginx.html
HTTP/1.1 200   0.11 secs:    2822 bytes ==> /apachebench_nginx.html
HTTP/1.1 200   0.12 secs:    2822 bytes ==> /apachebench_nginx.html
HTTP/1.1 200   0.12 secs:    2822 bytes ==> /apachebench_nginx.html
HTTP/1.1 200   0.12 secs:    3633 bytes ==> /siegebenchmark_nginx.html
HTTP/1.1 200   0.11 secs:    3633 bytes ==> /siegebenchmark_nginx.html
HTTP/1.1 200   0.11 secs:    2822 bytes ==> /apachebench_nginx.html
HTTP/1.1 200   0.12 secs:    2822 bytes ==> /apachebench_nginx.html
HTTP/1.1 200   0.12 secs:    3633 bytes ==> /siegebenchmark_nginx.html
HTTP/1.1 200   0.12 secs:    3633 bytes ==> /siegebenchmark_nginx.html
HTTP/1.1 200   0.12 secs:    3633 bytes ==> /siegebenchmark_nginx.html
HTTP/1.1 200   0.12 secs:    2822 bytes ==> /apachebench_nginx.html
HTTP/1.1 200   0.16 secs:    6686 bytes ==> /faq.html
HTTP/1.1 200   0.17 secs:    4029 bytes ==> /index.html
HTTP/1.1 200   0.17 secs:    6686 bytes ==> /faq.html
HTTP/1.1 200   0.17 secs:    4029 bytes ==> /index.html
HTTP/1.1 200   0.17 secs:    4029 bytes ==> /index.html
HTTP/1.1 200   0.17 secs:    4029 bytes ==> /index.html
HTTP/1.1 200   0.18 secs:    4029 bytes ==> /index.html
HTTP/1.1 200   0.18 secs:    6686 bytes ==> /faq.html
HTTP/1.1 200   0.18 secs:    6686 bytes ==> /faq.html
HTTP/1.1 200   0.17 secs:    6686 bytes ==> /faq.html
HTTP/1.1 200   0.18 secs:    4029 bytes ==> /index.html
HTTP/1.1 200   0.18 secs:    6686 bytes ==> /faq.html
HTTP/1.1 200   0.19 secs:    5880 bytes ==> /changelog.html
HTTP/1.1 200   0.19 secs:    6686 bytes ==> /faq.html
done.
Transactions:                  30000 hits
Availability:                 100.00 %
Elapsed time:                 198.92 secs
Data transferred:             128.80 MB
Response time:                  0.20 secs
Transaction rate:             150.81 trans/sec
Throughput:                     0.65 MB/sec
Concurrency:                   30.15
Successful transactions:       30000
Failed transactions:               0
Longest transaction:            3.37
Shortest transaction:           0.10

Haproxy load balancer + Centmin Mod Nginx web 3. Peaked at 0.87, 0.39, 0.16 cpu load which is better than previous 3x VPS load balanced test which peaked at cpu load of 1.3. Also stopped memcached and MySQL on web3 hence lower memory usage from previous peak 138MB to now 76MB

---------------------------------------------------------------------------
top - 11:34:00 up 36 days, 22:16,  1 user,  load average: 0.87, 0.39, 0.16
Tasks:  24 total,   2 running,  22 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.1%us,  0.2%sy,  0.0%ni, 99.5%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.1%us,  0.1%sy,  0.0%ni, 99.5%id,  0.2%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1048576k total,    78612k used,   969964k free,        0k buffers
---------------------------------------------------------------------------
             total       used       free     shared    buffers     cached
Mem:          1024         76        947          0          0          0
-/+ buffers/cache:         76        947
Swap:            0          0          0
---------------------------------------------------------------------------

Centmin Mod Nginx web 1. Peaked at 0.37, 0.17, 0.05 cpu load down from previous 0.94 peak cpu load and memory usage down from 129MB peak to 118MB.

---------------------------------------------------------------------------
top - 11:34:55 up 24 days,  6:35,  1 user,  load average: 0.37, 0.17, 0.05
Tasks:  26 total,   1 running,  25 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.1%us,  0.2%sy,  0.0%ni, 99.0%id,  0.6%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.1%us,  0.2%sy,  0.0%ni, 99.0%id,  0.6%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1048576k total,   121756k used,   926820k free,        0k buffers
---------------------------------------------------------------------------
             total       used       free     shared    buffers     cached
Mem:          1024        118        905          0          0          0
-/+ buffers/cache:        118        905
Swap:            0          0          0
---------------------------------------------------------------------------

Centmin Mod Nginx web 2. Peaked at 0.31, 0.11, 0.02 cpu load down from previous peak of 0.67 cpu load and memory usage slightly up from 126MB to 128MB

---------------------------------------------------------------------------
top - 11:34:16 up 12 days, 14:47,  1 user,  load average: 0.31, 0.11, 0.02
Tasks:  29 total,   1 running,  28 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.1%us,  0.1%sy,  0.0%ni, 94.9%id,  5.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.1%us,  0.1%sy,  0.0%ni, 94.2%id,  5.6%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1048576k total,   131420k used,   917156k free,        0k buffers
---------------------------------------------------------------------------
             total       used       free     shared    buffers     cached
Mem:          1024        128        895          0          0          0
-/+ buffers/cache:        128        895
Swap:            0          0          0
---------------------------------------------------------------------------

Centmin Mod Nginx web 4. Peaked at 0.38, 0.11, 0.03 cpu load

---------------------------------------------------------------------------
top - 11:32:25 up 1 day, 17:18,  1 user,  load average: 0.38, 0.11, 0.03
Tasks:  28 total,   1 running,  27 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.3%us,  0.1%sy,  0.0%ni, 98.8%id,  0.9%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.5%us,  0.1%sy,  0.0%ni, 98.9%id,  0.5%wa,  0.0%hi,  0.0%si,  0.0%st
---------------------------------------------------------------------------
             total       used       free     shared    buffers     cached
Mem:          1024        136        887          0          0          0
-/+ buffers/cache:        136        887
Swap:            0          0          0
---------------------------------------------------------------------------

Full details for 4x VPS load balanced cluster details.

Designation: web1 Centmin Mod Nginx web server
Virtualization: OpenVZ
OS: CentOS 6.0 32bit
CPU: Intel Xeon E5520
SPEC: 2CORE/512MB-1GB/50GB/2000GB

Designation: web3 Haproxy load balancer #1 + Centmin Mod Nginx web server
Virtualization: OpenVZ
OS: CentOS 6.0 32bit
CPU: Intel Xeon E5520
SPEC: 2CORE/512MB-1GB/50GB/2000GB

Designation: web2 Centmin Mod Nginx web server + Haproxy load balancer #2 backup
Virtualization: OpenVZ
OS: CentOS 6.0 32bit
CPU: Intel Xeon E5520
SPEC: 2CORE/512MB-1GB/50GB/2000GB

Designation: web4 Centmin Mod Nginx web server + Haproxy load balancer #3 backup
Virtualization: OpenVZ
OS: CentOS 6.0 32bit
CPU: Intel Xeon X3450
SPEC: 4CORE/1GB/30GB/1500GB

Other Siege benchmark tests

  1. Siege benchmark test #1: Benchmark mode (3x VPS load balanced)
  2. Siege benchmark test #2: Internet mode (3x VPS load balanced)
  3. Siege benchmark test #3: Internet mode (4x VPS load balanced with adjusted Haproxy distribution weights)