E3-1240 v5 @ 3.50GHz performance is worse than E5-2650 v2 @ 2.60GHz for PHP 5.X. For PHP 7 (and everything else) the E3 is better.<p>The test setup is Xenserver 6.5 w/Centos 6.8 kernel 2.6.32-642.6.2.el6.x86_64 HVM guests. Each VM has 2 cores assigned. The test is using siege. PHP 5.4, 5.5, 5.6; are all nearly 50% slower for E3. PHP 7 is 200% faster for E3. Varnish is nearly 300% faster for E3. Sysbench tests are 150% - 300% faster for E3. Only PHP 5.X is faster for E5.<p>I've torn down and rebuilt the VM's several times and confirmed they are the same. I've even live migrated them across to the other host/proc and confirmed the same results.<p>I've tried strace, but it isn't going to work because it adds overhead to every call and the E3 executes that overhead faster. In a browser the E5 TTFB is 167ms; the E3 is 318ms. Stracing the call on the E5 is 548ms; E3 557ms. The E3 executes the overhead of strace faster and the execution times equalize.<p>What is different about PHP 5.X that it would run so much better on the older generation, slower clocked, E5? Is it the larger l1/l2 cache making the difference? Or something else, instruction set related maybe? What another tool could I use, that adds a little overhead, to see the php execution performance?
You are comparing low end Xeon processors with high end Xeon processors ($250-$280 vs $1166-$1180 per processor). You would need to use the same series E3-1240 v2 vs E3-1240 v5 to have a more accurate test.
<a href="http://ark.intel.com/products/88176/Intel-Xeon-Processor-E3-1240-v5-8M-Cache-3_50-GHz" rel="nofollow">http://ark.intel.com/products/88176/Intel-Xeon-Processor-E3-...</a>
<a href="http://ark.intel.com/products/65730/Intel-Xeon-Processor-E3-1240-v2-8M-Cache-3_40-GHz" rel="nofollow">http://ark.intel.com/products/65730/Intel-Xeon-Processor-E3-...</a>
Maybe<p><pre><code> perf stat -d php ./benchmark.php
</code></pre>
would show some difference? It measures some kernel and CPU events like context switches, page faults, L1 and L3 cache misses.
PHP 5 is allocating memory differently from PHP 7. That's why you see difference there and this is the biggest difference between E5 and E3 here (memory bandwidth,cache size). PHP 7 is making optimizations making less memory allocations because it allocates in chunks, PHP5 is allocating/reallocating all the time.
I'm just speculating here, but if I remember correctly, PHP5 uses significantly more memory than PHP7, and the E5 has a 2.5x larger L3 cache and almost twice the memory bandwidth of the E3. Perhaps that has something to do with it?
> Varnish is nearly 300% faster for E3<p>That is the most worrying thing IMO. If the cache is hot (i.e. all loads are from RAM), then the E5 should be vastly more powerful, not vice versa...<p>Could you try the benchmarks with Gentoo, with optimised builds for each CPU?