Scaling-out WordPress – Performance Measures – CPU Generation influence

Hardware generation CPU result overview

Results overview

As I use different generation Hardware to host the VM, I am wondering what could be the influence of the generation of the CPU. A VM with 2 VCPU on a I7 860 @2800 Mhz (2009 Generation, server ade-esxi-03) should run faster than a VM on a Q6600 @2400 Mhz (2007 Generation, server ade-esxi-02).

Not only the CPU is different between the 2 servers, the RAM generation also differs : DDR2@800 and DDR3@1066. Despite the CPU and the RAM, I assume that the others elements (MainBoard, Disks, …) should have minimal impact on the tests as the MainBoard generally represents a few percentage in the difference of performance and the workload is not tied to the IO.

The frequency is 17% faster on the newest one, so at least, I should have this increase of performance; but there are so many parameters that enter in the performance of a CPU for a particular workload (L1, L2 cache and speed, Memory Bus speed, Use of hyper-threading, context switch speed, etc…) that I need to test it.

I assume that the virtualization layer (VMware 5) has no important impact as the 2 CPU use Intel Virtualization Technology, but perhaps I’m wrong…

Any way, what I would like to be sure is that I have equivalent performance of the fronts to have a fair dispatching of the requests by the load balancer when I will test it . So perhaps, I will have to minimize the number of vcpu for the VM hosted on the newest server.

Test #10, APC activated, 1 Front, 1Vcpu, 2GB on server ade-esxi-02 (Intel(R) Core(TM) Quad CPU Q6600 @ 2.40GHz; No Hyperthreading; 8 GB DDR2 800) :

$ ab -kc 10 -n 20 http://tu-web-01/mysite/
Requests per second:    3.15 [#/sec] (mean)

dstat shows 100% CPU


Test #11, APC activated, 1 Front, 1Vcpu, 2GB on server ade-esxi-03 (Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz; Hyperthreading active; 8 GB DDR3 1066) :

$ ab -kc 10 -n 20 http://tu-web-03/mysite/
Requests per second:    5.18 [#/sec] (mean)

dstat shows 100% CPU


Test #12, APC activated, 1 Front, 2Vcpu, 2GB on server ade-esxi-02 (Intel(R) Core(TM) Quad CPU Q6600 @ 2.40GHz; No Hyperthreading; 8 GB DDR2 800) :

$ ab -kc 10 -n 20 http://tu-web-01/mysite/
Requests per second:    5.65 [#/sec] (mean)

dstat shows 100% CPU


Test #13, APC activated, 1 Front, 2Vcpu, 2GB on server ade-esxi-03 (Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz; Hyperthreading active; 8 GB DDR3 1066) :

$ ab -kc 10 -n 20 http://tu-web-03/mysite/
Requests per second:    10.10 [#/sec] (mean)

dstat shows 100% CPU


Test #14, APC activated, 1 Front, 4Vcpu, 2GB on server ade-esxi-02 (Intel(R) Core(TM) Quad CPU Q6600 @ 2.40GHz; No Hyperthreading; 8 GB DDR2 800) :

$ ab -kc 10 -n 20 http://tu-web-01/mysite/
Requests per second:    11.50 [#/sec] (mean)

dstat shows 100% CPU


Test #15, APC activated, 1 Front, 4Vcpu, 2GB on server ade-esxi-03 (Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz; Hyperthreading active; 8 GB DDR3 1066) :

$ ab -kc 10 -n 100 http://tu-web-03/mysite/
Requests per second:    19.18 [#/sec] (mean)

dstat shows 100% CPU


Rem:
For the test above, I used 100 connections to be sure to get the correct value (20 connections was too short to use 100% CPU). On the Q6600 server, I tested with 100 connections and I got the same result as 20 connections.

Test #16, APC activated, 1 Front, 8Vcpu 4vcpu+Hyperthreading, 2GB on server ade-esxi-03 (Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz; Hyperthreading active; 8 GB DDR3 1066) :
Be aware that the i7 860 does not have 8 cores, here we get advantage of the Hyperthreading techno.

rauburtin@tproj-serv-03:~$ ab -kc 10 -n 100 http://tu-web-03/mysite/
Requests per second:    21.29 [#/sec] (mean)

dstat shows 82% Total CPU

Conclusion on hardware generation influence

The following graph shows the influence of the generation of Hardware (CPU+RAM) on the performance

Hardware generation CPU influence on req/sec

Hardware generation CPU influence on req/sec

As you can notice, the couple i7 8600+DDR3 1066 is roughly 70% faster than the couple Q6600+DDR2 800.
Working with 8 vcpu in on the i7 which is 4Cores+Hyperthreading do not give noticed increase of performance for this workload.

Based on this results, I decided to run the load balancing test with 4 VM as follow: Front VM on Q6600 will have 4 cpu (1VM on ade-esxi-01 and 1 VM on ade-esxi-02), Front VM on Core i7 will have 2 vcpu.
Working like this allows me to run 4 VM on the I7 (2 VM for the 2 Fronts, 1 VM for the Load balancer and 1 VM for the monitoring VM)
As a following post will demonstrate it, the VM for the load balancer (haproxy) could run with just 1vcpu and the VM for the monitoring will run with also 1 vcpu

go to Introduction

Facebooktwittergoogle_plusredditpinterestlinkedinmail