Apache/Passenger and cpulimit

Posted by Dave Smylie on Server Fault See other posts from Server Fault or by Dave Smylie
Published on 2012-04-13T19:10:14Z Indexed on 2012/04/14 5:31 UTC
Read the original article Hit count: 526

I run a ruby on rails site that processes email - the email is dumped directly into the web app via a POST from postfix.

At times I can get a burst of email coming in causing a prolonged surge in CPU usage making my VPS provider understandable unhappy with me. These emails don't need to be processed in a timely manner - they just need to be (eventually) processed.

Obviously I can't just nice the process as that only looks at the cpu usage on my VPS and can't take into account the cpu usage on the other VPS's.

I have found a utility called cpulimit that will you put hard limits on cpu usage for a particular process. (eg 20%). This seems ideal for this purpose, but I can't work out to integrate with apache/passenger.

Passenger starts up a ruby process for each server and restarts them periodically. Each time the pid will change. Cpulimit needs to be given a pid number for it to act on.

Anyone got any ideas how I could get passenger to fire off a call this command when it's starting up this particular virtual host?

© Server Fault or respective owner

Related posts about linux

Related posts about apache2