slpolice - Warn and renice top CPU hogs
slpolice [ --help ] [ --port=port ] [ --dhost=host ] [ --cpu-hours ] [ --version ] [ --version ]
slpolice will determine the top cpu users across a cluster of hosts. It will send mail if a process has over a specified amount of cpu time.
It will also mail if a user has a reservation for a long period of time.
Usually slpolice is run with a crontab entry similar to:
5 8-21 * * * /usr/local/bin/slpolice --cpu_min 120 --reserved_min 120 long=999 >/dev/null 2>&1
This sends warnings each hour after 2 hours of CPU time. It does not check at night so that long overnight jobs will not receive warnings.
Additional non-parameter arguments specify specific command regular expressions. When a process' command matches that regexp, the specified number of minutes will be used to determine when to send mail instead of the default.
This program is most valuable when used with the nicercizerd program, or a operating system where nice 19 processes get only leftover cpu resources. It requires a program called nice19 which is a version of nice that is setgid root and renices a job to 19. This comes with nicercizerd.
Displays this message and program version and exits.
With --debug, who to send the mail to instead of the process owner.
Specifies the port number that slchoosed uses.
Specifies the host name that slchoosed uses. May be specified multiple times to specify backup hosts. Defaults to SLCHOOSED_HOST environment variable, which contains colon separated host names.
Number of cpu minutes the job should have before being reported to the user. Defaults to 0, which is off.
Number of minutes after which the nice value of a high cpu using process that is not at 1 or 10 is reniced to 19. Defaults to 0, which is off.
Number of minutes a host may be reserved before reporting it to the user. Defaults to 0, which is off.
Displays program version and exits.
The latest version is available from CPAN and from http://www.veripool.org/.
Copyright 1998-2011 by Wilson Snyder. This package is free software; you can redistribute it and/or modify it under the terms of either the GNU Lesser General Public License Version 3 or the Perl Artistic License Version 2.0.
Wilson Snyder <email@example.com>