---
name: "cputool"
section: "8"
platform: "linux"
package: "cputool"
version: "0.0.8-2+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/cputool"
---

# cputool(8)

CPUTool is a utility which manages CPU usage and system load

## NAME

cputool — CPUTool is a utility which manages CPU usage and system load

## SYNOPSIS

**cputool** \[--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)](/kill/1.md), [uptime(1)](/uptime/1.md).

## AUTHOR

This manual page was written by Daniel Lange and converted to SGML by Nigel Kukard \<nkukard@lbsd.net\>. 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.
