Chapter 35. Viewing preemption states
Processes using a CPU can give up the CPU they are using, either voluntarily or involuntarily.
35.1. Preemption
A process can voluntarily yield the CPU either because it has completed, or because it is waiting for an event, such as data from a disk, a key press, or for a network packet.
A process can also involuntarily yield the CPU. This is called preemption and occurs when a higher priority process wants to use the CPU.
Preemption can have a particularly negative impact on system performance, and constant preemption can lead to a state known as thrashing. This problem occurs when processes are constantly preempted, and no process ever runs to completion.
Changing the priority of a task can help reduce involuntary preemption.
35.2. Checking the preemption state of a process
You can check the voluntary and involuntary preemption status for a specified process. The statuses are stored in /proc/PID/status
.
Prerequisites
- You have administrator privileges.
Procedure
Display the contents of
/proc/PID/status
, wherePID
is the ID of the process. The following displays the preemption statuses for the process with PID 1000.# grep voluntary /proc/1000/status voluntary_ctxt_switches: 194529 nonvoluntary_ctxt_switches: 195338