Occasionally, my server gets nearly completely unresponsive. Nearly the
entire CPU usage is spent in IO wait. I’m forced to kill the ruby
processes to get the server back up. The log files are not very useful
because the request never finishes so I can’t simply search for requests
that took at least x seconds. Are there any tools are techniques to
determine what request is currently in progress?
Sorry, I wasn’t clear. Does it happen on a certain portion of the site
or is it pretty random? Also, is it reproducible in development or is
it a production issue? If you’re at your wits end, you could use
before_filter to log any and all hits to controllers and actions. If
it your code is OK, then the timeouts are happening on the DB server
or there’s a communication problem between the app servers and the DB
server.
Sorry, I wasn’t clear. Does it happen on a certain portion of the site
or is it pretty random? Also, is it reproducible in development or is
it a production issue? If you’re at your wits end, you could use
before_filter to log any and all hits to controllers and actions. If
it your code is OK, then the timeouts are happening on the DB server
or there’s a communication problem between the app servers and the DB
server.
It has only happened in production and I haven’t been able to duplicate
it. I may go weeks or more without any issues and then have several
slowdowns/lockups in a few days. Extra logging might do the trick. Hmmm.
I could add a database table with PID, controller, action, and start
time. In the before_filter log the action completed and in an
after_filter mark it completed or delete it. When it locks up I could
just look in the database for incomplete actions. Might be worth a try.
examining the log file is of limited help.
that took at least x seconds. Are there any tools are techniques to
–
Jack C. [email protected]