Friday 22 June 2007
I wrote a blog last year about optimizing Apache, PHP and APC for the new Macs with Intel CPUs. At that time I could not get the ICC compiler to work in my setup, but now I have gotten the new soon to be released Intel C++ compiler version 10 from the guys at Intel and things are working much better now. I used the same machine and same setup as in my last post just with the new Intel compiler installed.
The installation itself is quite simple just click through the wizard and when you are done you need to export some environment variables and set the CC compiler variable:
source /opt/intel/cc/10.0.012/bin/iccvars.sh export CC=/opt/intel/cc/10.0.012/bin/icc
Then you compile Apache, PHP and APC as normal. I blogged about how to compile Apache and PHP earlier.
I did the same basic test as last time but now with eZ Publish 3.9. The results when running the system with GCC:
Requests per second: 26.29 [#/sec] (mean)
With ICC compiled webserver environment I get the following results:
Requests per second: 28.85 [#/sec] (mean)
This is an additional performance improvement of 9.7% with caching enabled. When doing more CPU intensive work the difference is more noticeable so I measured template processing of a complex page before and after and this is the results:
Template processing with GCC: 1.0160sec Template processing with ICC: 0.8382sec % difference: 21%
This means that the CPU intensive operations with eZ Publish is boosted about 21% while the more cached operations are boosted about 10%. This is quite good especially when you consider the price Apple charges for a 20% faster CPU. The ICC compiler for Mac is selling for $399 so you have to consider the cost of the optimized software vs the cost of hardware.
UPDATE: I already did some tests with ICC using Linux 32 and 64 bits os:
As a follow up on the ICC optimizations I did on Apache and friends and MySQL on 32 bits Intel servers I re-did the tests on 64bits servers. The test was done using Fedora Core 6 for x86_64 on a Dual Xeon 5130 2GHz.
The compilation is actually quite straight forward. You need to download and install the Intel C++ for Linux. I used the current 9.1 release of the ICC compiler. After the installation you need to export some variables:
export LD_LIBRARY_PATH=/opt/intel/cc/9.1.047/lib export CC=/opt/intel/cc/9.0/bin/icc
Then you compile Apache, PHP and APC as normal and you are ready to run an ICC accelerated environment on your 64bits architecture.
The testing was done with eZ Publish Open Source CMS and the performance improvements was 13.4% in number of pages served and the PHP compilation speed was increased with 14.4%. This is a bit more even results than on 32bit but the overall result is better with 64bit compared to 32bits. I tested with the default download of eZ Publish 3.9.1 and used the standard MySQL that ships with Fedora Core 6. There are more tuning that can be done with the setup and the results might vary when it is tuned even more. I will look into more detailed tuning and see what numbers I can get.
Saturday 31 March 2007
We are on our last day in Chicago to meet eZ partners and customers. The city is great, but the weather is highly variable. When we arrived it was nice and warm 25C sunny weather. Two days later it was less than 10C and freezing wind. Now it is back to almost 20C again. Funny thing.
Tuesday 02 January 2007
eZ Systems has announced the date for the eZ Conference 2007. The event will be held on June 6-8 in Skien, Norway. The call for papers is out and interested speakers are encouraged to submit talk proposals. Registration to attend the event will begin on January 9, 2007. Look out for early bird specials! For sponsorship, exhibition, registration and track session information, visit http://ez.no/community
Hope to see you there this summer.
Wednesday 29 November 2006
eZ publish has gotten a new interface with full featured front end editing and new good looks in version 3.9. For those of you who have not seen this I have made a screenshot you can see below.
This interface includes a totally new set of optimized and validated templates and enables you to run solutions out-of-the-box with eZ publish.
Running PHP and eZ publish on PowerPC based Macs have been extreemly slow and now that I have eZ publish running on the Intel based Mac I tried to tune it to get maximum performance out of it when running eZ publish as I was not satistied with my previous tests.
I now have 2GB of memory in the laptop I did a test similar to what I did before. I am using a different eZ publish setup which is a bit more tuned also (Yes, this is going to be released soon enough).
eZ publish 3.8 test before the patch:
Requests per second: 19.95 [#/sec] (mean)
Rasmus at Yahoo! have been using a patched version of PHP running on their FreeBSD boxes. The reason is that PHP generates lots of stat calls which really slows down the system on FreeBSD. Since OS X is based on FreeBSD I have long planned to test this patch on my system to see how it affects eZ publish. I got a ready patched version from my colleague Ole Marius, thanks ;)
The results from eZ publish after patching the system is:
Requests per second: 26.06 [#/sec] (mean)
In other words a performance boost of about 30%. Which is quite good.
When I tuned eZ publish for Linux on the Intel based platform I got good results with both Apache, PHP and APC as well as with MySQL. So I decided to get the ICC compiler for OS X and give it a shot on the Mac. After tons of warnings during compile it finally stopped with the error during linking:
icc: Command line error: invalid argument for option '-b'
If anyone knows how to make it link with icc under OS X I would be interested.
Tuesday 22 August 2006
I have just gotten an article published on the community section of ez.no entitled Tuning MySQL for eZ publish. The article looks at the different buffers and settings you can tune in MySQL to boost the performance of eZ publish when running on MySQL.
I am interested in getting comments and feedback on your experience on this topic and what can be tuned for futher performance gain.
Thursday 13 July 2006
I tested the exam and I passed! This means that I can use this banner on my blog:
Oh, I am not going to tell you how many answers I made wrong. But I can say that I did pass it with more than 70% which is what you need to pass the exam.