&dhucpackage; &dhsection;

&dhpackage;

CPUTool is a utility which manages CPU usage and system load

          &dhpackage;
          --cpu-limit PCNT
          --load-limit LOAD

              --pid PID
              --pid-pgrp PID

            -- COMMAND

## DESCRIPTION

Limit the CPU usage of a process or a process group to a given limit and/or suspend processes if the system load exceeds a threshold. CPUTool works by sending SIGSTOP and SIGCONT signals to processes depending on the system load.

## OPTIONS

These programs follow the usual &gnu; command line syntax, with long options starting with two dashes (`-'). A summary of options is included below.

`-c`, `--cpu-limit `PCNT``

- Specify the maxium CPU the process / process group can use. Expressed as percentage of total CPU. Eg. 200 is two full CPUs in a multi processor system. Specify an integer value.

`-l`, `--load-limit `LOAD``

- Specify the maxium load the system may experience for the process process group to continue running. Specifyng a fractional value is possible (e.g. 3.5).

`-p`, `--pid `PID``

- Manage the CPU usage of a specific PID. This is the most efficient use of CPUTool as it does not have to walk the process tree to look for forks of children.

`-P`, `--pid-pgrp `PID``

- Manage the CPU usage of a specific PID's entire process group. The same can be achieved by specifying a `COMMAND` which CPUTool will then execute and manage the process group created by that command.

`-v`, `--verbose`

- Increase the amount of messages printed to stderr.

  -vv will additionally show statistical information.

  -vvv will addditionally show signals being sent to processes.

`-V`, `--version`

- Output version information and exit.

`-h`, `--help`

- Display a help page and exit.

## NOTES

CPUTool will run on 32-bit and 64-bit Linux systems. It depends on the /proc pseudo-filesystem to detect PIDs and their resource usage.

TCP network connections could time out if a process is suspended for extended periods of time (while the load is too high). Not all programs handle this case well.

## EXAMPLES

cputool -p 4711 -c 75

- Limit the PID 4711 to 75% use of one CPU core.

cputool -l 7.5 -- rsync -av /home /backup/`date +%Y-%m-%d`/

- Run rsync for a local backup only when the system load does not exceed 7.5. See the note for -l when using program that relies on TCP network connections.

## SEE ALSO

signals (7), kill(1), uptime(1).

## AUTHOR

This manual page was written by Daniel Lange and converted to SGML by &author; <&dhemail;>. Permission is granted to copy, distribute and/or modify this document under the terms of the &gnu; General Public License, Version 3 any later version published by the Free Software Foundation.

On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL-3.