RHCSA Rapid Track
Use the top command to examine running processes and control them dynamically.
Outcomes
Manage processes in real time.
As the student user on the workstation machine, use the lab command to prepare your system for this exercise.
This command prepares your environment and ensures that all required resources are available.
[student@workstation ~]$ lab start processes-monitor
Instructions
On the
workstationmachine, open two terminal windows side by side. In this section, these terminals are referred to as left and right. In each terminal, log in to theserveramachine as thestudentuser.[student@workstation ~]$
ssh student@servera...output omitted... [student@servera ~]$In the left terminal shell, create the
/home/student/bindirectory. Create a shell script calledmonitorin the new directory to generate an artificial CPU load. Make themonitorscript file executable.Create the
/home/student/bindirectory.[student@servera ~]$
mkdir /home/student/binCreate the script file in the
/home/student/bindirectory with the content shown.[student@servera ~]$
vim /home/student/bin/monitor#!/bin/bash while true; do var=1 while [[ var -lt 60000 ]]; do var=$(($var+1)) done sleep 1 doneNote
The
monitorscript runs until the process is terminated. It generates an artificial CPU load by performing sixty thousand addition calculations. After generating the CPU load, it then sleeps for one second, resets the variable, and repeats.Make the
monitorfile executable.[student@servera ~]$
chmod a+x /home/student/bin/monitor
In the right terminal shell, run the
topcommand. Resize the window to view the contents of the command.[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, verify 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
monitorscript file in the background.[student@servera ~]$
monitor &[1] 6071In the right terminal shell, monitor the
topcommand. Use the l, t, and m single keystrokes to toggle the load, threads, and memory header lines. After observing this behavior, ensure that all headers are displayed.Note the process ID (PID) for the
monitorprocess. 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 value is currently less than 1. The observed value might be affected by resource contention from another virtual machine or from 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 the
monitorscript file 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, which is also expected to hover between 15% to 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...Again, view the one-minute load average, which remains less than 1. Wait at least one minute for 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 the
monitorscript file 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, which is again expected to hover between 15% to 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 two CPUs, so only three processes are not enough to stress it. Start three moremonitorprocesses in the background. View again the one-minute load average, which is now expected to be above 1. Wait at least one minute for 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 you are finished observing the load average values, terminate each of the
monitorprocesses from within thetopcommand.In the right terminal shell, press k to observe the prompt below the headers and above the columns.
...output omitted... PID to signal/kill [default pid = 11338]The prompt chooses 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.
Verify that the selected process is no longer present in the
topcommand. If the PID exists, then repeat these steps to terminate the processes, and substitute 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
monitorprocess. Verify that nomonitorprocesses remain in thetopcommand.In the right terminal shell, press q to exit the
topcommand. Close the right terminal.Return to the
workstationmachine as thestudentuser.[student@servera ~]$
exitlogout Connection to servera closed. [student@workstation ~]$