RHCSA Rapid Track
In this exercise, you will use the top command to dynamically examine running processes and control them.
Outcomes
You should be able to manage processes in real time.
Log in to workstation as student using student as the password.
On workstation, run the lab processes-monitor start command.
The command runs a start script that determines if the host, servera, is reachable on the network.
[student@workstation ~]$lab processes-monitor start
On
workstationopen two terminal windows side by side. These terminals are referred to as left and right. On each terminal, use the ssh command to log in toserveraas thestudentuser.[student@workstation ~]$ssh student@servera...output omitted...[student@servera ~]$In the left terminal shell, create a new directory called
/home/student/bin. In the new directory create a shell script calledmonitor, which generates artificial CPU load. Ensure the script is executable.Use the mkdir command to create a new directory called
/home/student/bin.[student@servera ~]$mkdir /home/student/binCreate a script named
monitorin the/home/student/bindirectory with the following content:#!/bin/bash while true; do var=1 while [[ var -lt 60000 ]]; do var=$(($var+1)) done sleep 1 doneThe
monitorscript runs until terminated. It generates artificial CPU load by performing sixty thousand addition problems. It then sleeps for one second, resets the variable, and repeats.Use the chmod command to make the
monitorfile executable.[student@servera ~]$chmod a+x /home/student/bin/monitor
In the right terminal shell, run the top utility. Size the window to be as tall as possible.
[student@servera ~]$toptop - 12:13:03 up 11 days, 58 min, 3 users, load average: 0.00, 0.00, 0.00 Tasks: 113 total, 2 running, 111 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 1829.4 total, 1377.3 free, 193.9 used, 258.2 buff/cache MiB Swap: 1024.0 total, 1024.0 free, 0.0 used. 1476.1 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5861 root 20 0 0 0 0 I 0.3 0.0 0:00.71 kworker/1:3-events 6068 student 20 0 273564 4300 3688 R 0.3 0.2 0:00.01 top 1 root 20 0 178680 13424 8924 S 0.0 0.7 0:04.03 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp ...output omitted...In the left terminal shell use the lscpu command to determine the number of logical CPUs on this virtual machine.
[student@servera ~]$lscpuArchitecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little EndianCPU(s): 2...output omitted...In the left terminal shell, run a single instance of the monitor executable. Use the ampersand (&) to run the process in the background.
[student@servera ~]$monitor &[1] 6071In the right terminal shell, observe the top display. Use the single keystrokes l, t, and m to toggle the load, threads, and memory header lines. After observing this behavior, ensure that all headers are displaying.
Note the process ID (PID) for monitor. View the CPU percentage for the process, which is expected to hover around 15% to 25%.
[student@servera ~]$topPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 071 student 20 0 222448 2964 2716 S 18.7 0.2 0:27.35 monitor ...output omitted...View the load averages. The one minute load average is currently less than a value of 1. The value observed may be affected by resource contention from another virtual machine or the virtual host.
top - 12:23:45 up 11 days, 1:09, 3 users, load average: 0.21, 0.14, 0.05
In the left terminal shell, run a second instance of monitor. Use the ampersand (&) to run the process in the background.
[student@servera ~]$monitor &[2] 6498In the right terminal shell, note the process ID (PID) for the second
monitorprocess. View the CPU percentage for the process, also expected to hover between 15% and 25%.[student@servera ~]$topPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6071 student 20 0 222448 2964 2716 S 19.0 0.2 1:36.53 monitor 6498 student 20 0 222448 2996 2748 R 15.7 0.2 0:16.34 monitor ...output omitted...View the one minute load average again, which is still less than 1. It is important to wait for at least one minute to allow the calculation to adjust to the new workload.
top - 12:27:39 up 11 days, 1:13, 3 users, load average: 0.36, 0.25, 0.11
In the left terminal shell, run a third instance of monitor. Use the ampersand (&) to run the process in the background.
[student@servera ~]$monitor &[3] 6881In the right terminal shell, note the process ID (PID) for the third
monitorprocess. View the CPU percentage for the process, again expected to hover between 15% and 25%.[student@servera ~]$topPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6881 student 20 0 222448 3032 2784 S 18.6 0.2 0:11.48 monitor 6498 student 20 0 222448 2996 2748 S 15.6 0.2 0:47.86 monitor 6071 student 20 0 222448 2964 2716 S 18.1 0.2 2:07.86 monitorTo push the load average above 1, you must start more
monitorprocesses. The classroom setup has 2 CPUs so only 3 processes are not enough to stress it. Start three moremonitorprocesses. View the one minute load average again, which now is expected to be above 1. It is important to wait for at least one minute to allow the calculation to adjust to the new workload.[student@servera ~]$monitor &[4] 10708[student@servera ~]$monitor &[5] 11122[student@servera ~]$monitor &[6] 11338top - 12:42:32 up 11 days, 1:28, 3 users, load average: 1.23, 2.50, 1.54
When finished observing the load average values, terminate each of the
monitorprocesses from within top.In the right terminal shell, press k. Observe the prompt below the headers and above the columns.
...output omitted... PID to signal/kill [default pid = 11338]The prompt has chosen the
monitorprocesses at the top of the list. Press Enter to kill the process....output omitted... Send pid 11338 signal [15/sigterm]Press Enter again to confirm the SIGTERM signal 15.
Confirm that the selected process is no longer observed in top. If the PID still remains, repeat these terminating steps, substituting SIGKILL signal 9 when prompted.
6498 student 20 0 222448 2996 2748 R 22.9 0.2 5:31.47 monitor 6881 student 20 0 222448 3032 2784 R 21.3 0.2 4:54.47 monitor 11122 student 20 0 222448 2984 2736 R 15.3 0.2 2:32.48 monitor 6071 student 20 0 222448 2964 2716 S 15.0 0.2 6:50.90 monitor 10708 student 20 0 222448 3032 2784 S 14.6 0.2 2:53.46 monitor
Repeat the previous step for each remaining monitor instance. Confirm that no
monitorprocesses remain in top.In the right terminal shell, press q to exit top. Exit from
serveraon both terminal windows.[student@servera ~]$exitlogout Connection to servera closed. [student@workstation ~]$[student@servera ~]$exitlogout Connection to servera closed. [student@workstation ~]$
This concludes the guided exercise.