Catching Apache segfaults due to eAccelerator
Last night we migrated our Linode for Gamers With Jobs to a new Xen VPS and we've noticed a significant performance boost. We did, however, start encountering a random issue with segmentation faults in Apache. If you haven't seen this happen before, it tends to begin innocently with one Apache process dying, and therefore giving errors (usually WSOD), but quickly balloons into dozens of dead processes. It essentially hoses Apache.
Apparently the issue is due to eAccelerator, so I reinstalled it and cleared its caches in the hope that it might limit its occurrence. Just in case, though, 2bits has a great fix for it, using the logwatcher script by Firebright, Inc. I was able to quickly get it going, and the only difference is that I used the Debian init.d script provided by Derek Laventure to run it.

Comments
I recommend Xcache, I've been using it on DrupalModules.com since it launched, and have yet to see any problems. Performance-wise, Xcache is at least as quick as eAccelerator.
I gave up on eAccelerator after moving to Drupal 5 and PHP5. It is just not stable enough, and barely maintained. Too bad, because it used to have the edge in speed and the least memory footprint.
APC is very stable and has the benefit of tracking PHP changes, since it is maintained by core PHP team members.
For a recent benchmark on the three free op-code caches, read our article: Benchmarking Drupal with PHP op-code caches: APC, eAccelerator and XCache compared.
Post new comment