Hacker News new | ask | show | jobs
by kainsavage 4819 days ago
Yes, we are using APC for all the PHP tests in this round of benchmarking.
1 comments

Is there somewhere we can see the settings for APC?

Thanks for the great work!

Having max/min spare servers as the same amount is a bad idea. This is incurs a substantial amount of process swapping, as every single request php-fpm is going to try and ensure there are precisely 256 idle servers.
Ok, help us out: Given that we have Wrk set to max out at 256 concurrent requests, what would the ideal tuning for php-fpm? A pull request would be ideal, but you can also just tell us. :)
I'd set minimum idle to something like 16 or 32. php-fpm will not create more than 32 workers/sec.

What happens now is 256 workers running and 256 simultaneous requests occur. So php-fpm sees 256 workers busy, 0 idle. The minimum idle is 256, so it attempts to start 256 additional processes.

I could be missing something, but it looks like you are using the default settings. Have you tried tweaking it all? Specifically setting apc.stat=0, which will stop it from checking the mtime. You'll need to clear the cache with apc_clear_cache() when you make code changes though. You may also want to look at apc.php to check for fragmentation and adjust apc.shm_size if necessary
fork, benchmark, and create a pull request. :)
I'm hesitant to just change the config to apc.stat=0, since I can't ensure apc_clear_cache() will be called during deployment

I'll add in apc.php to help make sure other things are tuned properly though. different settings could be appropriate for different servers...