PHP Acceleration – Pick Your Poison

As I deployed more applications and web sites on my server, I started running into resource issues. Since most of the applications I write are in Java, I run Tomcat on my Linux server. But I also run Apache as a front-end host for Tomcat as well as several PHP applications like WordPress, Vanilla and a few other PHP applications that I’ve written. I am not an expert PHP developer by any stretch of the imagination but I tinker with enough PHP that I decided to take a look at PHP Acceleration software.

For the uninitiated, PHP is a scripting language that is interpreted and compiled on the server side. PHP Accelerators offer caching of the PHP scripts in their compiled state along with optimization. There are several PHP optimization products out there and I decided to give eAccelerator, XCache and APC a try on my Linux machine. For the record, the box is running CentOS 4.4 which is essentially a distribution that is repackaged Red Hat Enterprise Linux 4.x.

  • eAccelerator – eAccelerator is a free open-source PHP accelerator, optimizer, and dynamic content cache. It increases the performance of PHP scripts by caching them in their compiled state, so that the overhead of compiling is almost completely eliminated. It also optimizes scripts to speed up their execution. eAccelerator typically reduces server load and increases the speed of your PHP code by 1-10 times.
  • XCache – XCache is a fast, stable PHP opcode cacher that has been tested and is now running on production servers under high load.
  • APC – The Alternative PHP Cache (APC) is a free and open opcode cache for PHP. It was conceived of to provide a free, open, and robust framework for caching and optimizing PHP intermediate code.

I compiled and installed these PHP accelerators and found APC worked the best for me. XCache seemed to work well and actually provided a nice admin application that lets you peek inside the cache to see what’s cached, the hit/miss ratio, etc. eAccelerator also seemed to work well and offered a great performance boost but caused segmentation fault and made the Apache web server unusable. It could have been bad PHP code that was causing the segmentation faults but I didn’t really spend any times getting to the root cause. APC just worked, pretty much like XCache but seemed to offer a little better performance. Now I didn’t really perform any empirical testing here – I simply relied on my website monitor GrabPERF as I ran each PHP extension for a few days. Your mileage may vary based on your server architecture, application, lunar phase, etc but PHP APC seemed to work the best for me.

Daily for Feb 27, 2007

Daily for Feb 25, 2007 through Feb 26, 2007

Daily for Feb 24, 2007

Daily for Feb 23, 2007

Birthday Tribute to Baby Gavin

Gavin Winslow is beating the odds and is about to celebrate his first birthday. Gavin is my wife’s cousin’s son and he was born on February 23, 2006 with end-stage renal failure, or congenital kidney failure. Gavy was born with only 10-15% function in one of his kidneys, and 0% functions in the other. He was admitted to Children’s hospital of Wisconsin immediately after his birth and started on peritoneal dialysis.

Gavin is a fighter and a tough little guy who is beating the odds every day as he gets ready for his kidney transplant. Gavin’s family and friends have come together and helped raise $95,778.67 (as of 2/15/07) to help offset the cost of Gavin’s transplant and transplant-related expenses. Visit for more details on Gavin’s journey.

Gavin’s mom Jill and my wife Kristin put together this video to celebrate his first birthday. Check it out and visit and donate to help Gavin celebrate many more birthdays.

Daily for Feb 20, 2007 through Feb 21, 2007

Daily for Feb 19, 2007

These are my links for Feb 19, 2007:

Daily for Feb 17, 2007 through Feb 19, 2007

These are my links for Feb 17, 2007 through Feb 19, 2007:

Daily for Feb 17, 2007