What Does the R State Mean in htop?
The htop command-line utility provides a real-time,
interactive overview of the processes running on a Linux system. Within
its interface, the “State” column (labeled S or STATE)
uses single-letter codes to indicate the current operational status of
each process. When you see an “R” in this column, it
signifies that the process is in the Running or
Runnable state, meaning it is either actively executing on a
CPU core or waiting in the system queue for its turn to use a CPU
core.
Understanding the R (Running/Runnable) State
In a multitasking operating system like Linux, the CPU constantly switches between different tasks. The “R” state indicates that a process is fully ready to work. It is important to differentiate between the two aspects of this state:
- Running: The process is currently being executed by a CPU core at this exact millisecond.
- Runnable: The process has everything it needs to execute (it is not waiting for user input, disk read/write, or network data) but is briefly waiting in the CPU’s run queue because all CPU cores are currently busy with other tasks.
Because Linux schedules processes incredibly fast, htop
groups both executing and ready-to-execute processes under the single
“R” flag.
R State vs. Other Common htop States
To better understand the significance of “R”, it helps to compare it to the other process states you will frequently encounter in the same column:
| State Code | Meaning | Description |
|---|---|---|
| R | Running / Runnable | Actively using the CPU or waiting in the queue to use it. |
| S | Interruptible Sleep | Waiting for an event to complete, such as user input or a specific system resource. |
| D | Uninterruptible Sleep | Waiting for a critical hardware event, usually direct disk I/O. It cannot be killed or interrupted. |
| Z | Zombie | The process has finished executing but its parent process has not yet reaped its exit status. |
| T | Stopped / Traced | The process has been paused, usually by a user signal (like
Ctrl+Z) or a debugger. |
System Performance Implications of Too Many “R” Processes
Seeing a few “R” processes is completely normal and indicates that your system is actively doing work. However, if you notice a high number of processes constantly sitting in the “R” state, it usually points to a CPU bottleneck.
When the number of “R” processes significantly exceeds the total number of CPU cores available in your system, the CPU run queue grows. This causes the system’s Load Average to spike, which can lead to noticeable performance lag, stuttering, and delayed response times as processes compete for limited processor cycles. If a single process stays permanently stuck in the “R” state while consuming 100% CPU, it may be caught in an infinite loop or suffering from a software bug, requiring you to investigate or terminate the process.