chcpu - Linux


chcpu is a command-line utility used to dynamically manage CPU affinity on Linux systems. It allows users to bind specific processes or threads to particular CPU cores, optimizing performance and resource utilization.


chcpu [-h] [-p PID] [-t TID] [-c CPU] [-C CPU] [-N] [-A] [-b] [-s] [-v]


  • -h, –help: Display help information.
  • -p PID: Specify the Process ID (PID) of the process to manage CPU affinity.
  • -t TID: Specify the Thread ID (TID) to manage CPU affinity.
  • -c CPU: Set a single CPU core for the process/thread.
  • -C CPU: Set multiple CPU cores for the process/thread, separating them with commas.
  • -N: Enable CPU affinity for all processes/threads in a task.
  • -A: Display current CPU affinity for the specified process/thread.
  • -b: Use batch mode for faster operation, disabling confirmation prompts.
  • -s: Silence output, suppressing all notifications.
  • -v: Enable verbose mode, providing detailed output.


Binding a Process to CPU Core 3:

chcpu -p 1234 -c 3

Setting CPU Affinity for Thread 5 of Process 4567:

chcpu -t 5 -p 4567 -c 2,4

Displaying Current CPU Affinity for Process 7890:

chcpu -A -p 7890

Common Issues

  • Unable to set affinity: Ensure the user has sufficient privileges (sudo) and the specified CPU cores are available.
  • Multiple processes with same PID: Use -N to manage all processes in a task.
  • Incorrect CPU core specification: Use lscpu to verify available CPU cores.


With ‘top’:

top -H | chcpu -p <PID> -c <CPU>

With ‘htop’:

htop | chcpu -p <PID> -c <CPU>

Related Commands

  • taskset: Similar tool for managing CPU affinity.
  • ps, top, htop: Process monitoring tools that display CPU affinity information.
  • Linux CPU Affinity Management: Official documentation on CPU affinity.