Papelipe / Tags / eZ publish



Right menu

Calendar

Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

eZ publish

Slides for Application Clustering with MySQL & Squid

The slides for the talk I presented together with Zak on Application Clustering with MySQL & Squid is now available. The slides are in OpenDocument format so you need OpenOffice.org to view them. Any comments or suggestions welcome.
Update: slides are now also available in PDF format.

Compiling Apache and PHP on Mac OS X

Since my recent move to the Mac running OS X I have learnt some new stuff about PHP and Apache the hard way. OS X is shipped with Apache and PHP by default and if you compile Apache and PHP like you normally do under Linux you quickly get surprised. When I compile Apache I always use a prefix so I have it installed under /usr/local/apache or something like that. I like to have it installed like this so I can quickly change between Apache and PHP versions and configurations. Under OS X you quickly notice that Apache is not completely installed in the directory you added as prefix. The reason for that is that Apache has a different installation layout under OS X. So, you simply have to use the configure parameter --with-layout to make things work like you are used to.

The compilation switches I use are:

cd apache_1.3.34
make clean
./configure --prefix=/usr/local/apache \
                    --enable-module=so \
                    --enable-module=rewrite \
                    --with-layout=Apache
make
sudo make install
cd ..
cd php-4.4.2
make clean
./configure --prefix=/usr/local/apache  \
            --enable-mbstring \
            --with-apxs=/usr/local/apache/bin/apxs \
            --enable-cli \
            --enable-exif \
            --with-mysql \
            --with-mbstring
make
sudo make install 

eZ publish speed on MacBook Pro

I did some benchmarks on how eZ publish performs on the new Intel based MacBook Pro running OS X version 10.4.6. The PowerPC based Mac machines has really poor performance with eZ publish when I have tested or heard about tests on it, so I was excited about the results.

I did a plain installation of eZ publish 3.7.5 and did a simple ab -c 5 -n 50 and got 12.78 pages pr second. It also feels quick on normal operations in eZ publish. The new Intel based Macs are now a good option for doing eZ publish development. It is still slower than Linux, but for development and testing it is good enough.

I also did some tests with the apc.stat=0, but I did not see any performance improvement. I was hoping that this new setting would remove the stat overhead found on FreeBSD based systems, but atleast when I tested I saw no difference.

The configuration of the laptop is 1.83 GHz and 1GB ram. Running Apache 1.3.34, PHP 4.4.2 and APC 3.0.10.

Benchmark of Intel Compiled (ICC) Apache, PHP and APC

Since the testing of MySQL compiled with Intel ICC showed good numbers I carried on some testing with Apache, PHP and APC also compiled with the ICC compiler. The test was done with eZ publish running on a Linux server with Xeon processors.

All tests showed speed improvements. When I ran tests on template processing, which is the most PHP intensive operations in eZ publish, it showed improvements from 17.4% to 19.6% faster with the ICC compiler. Total script runtime measured with ab ranged from 6.3% to 12.7% faster. Of course these numbers are a bit lower since they include I/O like network transfer of the pages and so on. The more PHP intensive and heavy the script was the faster it ran under ICC.

Of course this compiler comes with a $399 pricetag so you have to compare that with the performance gained with it. In our case it looks like heavy operations are boosted by close to 20%.

To get your stack compiled with ICC you simply install the compiler as instructed by Intel and export the CC environment variable.

export CC=/opt/intel/cc/9.0/bin/icc 

Once this is set up you can do a make clean and rm config.cache followed by a ./configure. For APC you also need to run phpize before you configure. Then you make and make install like normal. No tweaking was done other than this so there is mabye room for further tweaking of compiler parameters.

It would be good to hear other people's experience with PHP and the ICC compiler.