I had to do a fairly deep dive into apc for some setup changes at work. These were related to our deployment process which requires us to gracefully restart apache after each deploy to deal with clearing apc. We’ve got a large code base and lots of deploys per day (30+), so while lots of files change every day, there are more that stay the same. Allowing the cache to endure through deloys is what we want so we actually want to change from apc.stat = 0 to apc.stat = 1. With that comes making sure our cache size is large enough and setting a reasonable ttl.
Here are a set of articles with details about apc:
- How Does APC Work
- Understanding APC
- LAMP php opcodes cache Part 1
- LAMP php opcodes cache Part 2
- Monitoring PHP APC cache usage
On a pool of 75, 3 soon started showing increased fragmentation. Turns out those 3 servers didn’t have our app loaded on the ram disk (tmpfs) but were reading from the disk.