I'm load testing a Magento site using Gatling. The site is hosted on 4 Amazon EC2 machines behind an application load balancer.
If all of my cron jobs are disabled, the site can take a good amount of traffic. But if I add cron.php to one server's crontab during load testing, as soon as that task kicks in, that server can't cope. The load average jumps up to around 40 and I start getting timeouts. Meanwhile, the load balancer continues to regard the machine as "healthy" because the helloworld.php script that I've set up as the health check, seems to be responding just fine the whole time.
The other 3 servers, where cron is not enabled, continue to run just fine.
In fact there's another php script which does the same thing. It's a quick script we wrote to look for orders stuck in "pending" status. Most times, there are no stuck orders, and the script is finished within one second... and yet this server still starts to fail to handle web traffic as soon as the cron job kicks in.
The website runs on php-fpm, the cron job uses php cli. So what on Earth could cause cron.php to interfere with the web traffic so much?