View Full Version : Code To Auto Killall Mysqld
Doug E
2006-10-25, 05:09 AM
Im looking for a command that will check my server load and run the command 'killall mysqld' if the load is over a certain average. Should I be looking for cron commands to do this?
Servhot
2006-10-25, 10:30 AM
I would suggest you better check why the mysql load moves that high and find a solution for this or better fix the program which makes the server load :)
I wouldn't condone doing a kill for that as you're likely to leave tables in a crashed state requiring a repair or at least a check before you start.
However, with that said, you could do something like:
#!/usr/bin/perl
open F,("</proc/loadavg");
($ld,$junk) = split /\./,<F>;
close F;
if ($ld >= 10) {
`whateveryouwanttorun`;
}
If the 1 minute load average is above 10, it will run that command. Put that in cron and you should be set. However, I'll say again, and I agree with servhot, I think its a bad idea to kill the server.
Perhaps run something like
mysqladmin -uroot -ppassword processlist | mail username@domain.com
or turn on the slow query log, or do a show processlist in the mysql command line interface or phpmyadmin.
Better to find the cause than to treat the effect.
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.