LPIC-1 Exam Objective 103.6: Modify Process Execution Priorities #
Weight: 2 #
Description #
Candidates should be able to manage process execution priorities.
Key Knowledge Areas: #
- Know the default priority of a job that is created.
- Run a program with higher or lower priority than the default.
- Change the priority of a running process.
Files, Terms, and Utilities: #
nicepsrenicetop
Introduction #
In Linux, process execution priorities determine how much CPU time is allocated to each process. Understanding how to manage these priorities is crucial for optimizing system performance and ensuring that critical tasks receive the necessary resources. This tutorial will cover how to modify process execution priorities using tools such as nice, renice, ps, and top in both Ubuntu/Debian and Enterprise Linux distributions like Red Hat Enterprise Linux (RHEL) and CentOS.
Default Priority of a Job #
When a process is created, it is assigned a default priority, which is typically 0. The priority range in Linux goes from -20 (highest priority) to 19 (lowest priority).
Checking Default Priority #
You can check the priority of running processes using the ps command:
ps -eo pid,ni,cmd | grep <process_name>
Here, ni represents the nice value of the process.
Running a Program with Higher or Lower Priority #
The nice command is used to start a process with a specified priority.
Syntax #
nice -n <priority> <command>
Example #
Starting a process with a lower priority:
nice -n 10 sleep 1000 &
This command starts the sleep process with a nice value of 10.
Changing the Priority of a Running Process #
The renice command is used to change the priority of an already running process.
Syntax #
renice <priority> -p <pid>
Example #
Changing the priority of a process with PID 1234 to -5:
sudo renice -5 -p 1234
Using top to Monitor and Change Priorities
#
The top command is a powerful utility for monitoring system processes and their resource usage. It also allows you to change the priority of running processes.
Steps: #
- Run
topby simply typing:top - Find the process you want to change.
- Press
rand enter the PID of the process. - Enter the new priority value.
Practical Examples #
Ubuntu/Debian Example #
Checking Current Priority:
ps -eo pid,ni,cmd | grep apache2Running a Program with Lower Priority:
nice -n 10 /usr/bin/myapp &Changing the Priority of a Running Process:
sudo renice -5 -p 1234Using
topto Change Priority:- Run
top - Find the process (e.g.,
myapp) - Press
rand enter the PID - Set the new priority (e.g., -10)
- Run
Enterprise Linux (RHEL/CentOS) Example #
Checking Current Priority:
ps -eo pid,ni,cmd | grep httpdRunning a Program with Lower Priority:
nice -n 15 /usr/bin/myapp &Changing the Priority of a Running Process:
sudo renice -10 -p 5678Using
topto Change Priority:- Run
top - Find the process (e.g.,
myapp) - Press
rand enter the PID - Set the new priority (e.g., 5)
- Run
Conclusion #
Managing process execution priorities is a crucial skill for Linux system administrators. By using commands like nice, renice, ps, and top, you can ensure that critical processes receive the necessary resources and maintain optimal system performance. This knowledge is essential for the LPIC-1 certification and practical system administration tasks.