Problem: Poor performance on a RHEL station
Checking CPU performance
When a RHEL station is taking too long to perform a task, you can check the CPU status to ensure that one process is not using most of the CPU resources, and then use commands to review the CPU usage.
Perform this procedure when CPU usage remains high and performance degrades.
You can also perform other procedures to monitor performance: If you are you performing a large listing operation using the NFM-P client GUI or OSS, check the LAN throughput using the netstat command, as described in
Problem: Delayed server response to client activity.
Steps
|
|
1 |
Log on to the station as the root user.
|
2 |
Open a console window.
|
3 |
Perform the following steps to check for processes that are consuming excessive CPU cycles:
-
To list the top CPU processes using the UNIX utility prstat, type:
# top ↵
Depending on your system configuration, approximately the top 20 processes are displayed.
-
Review the output.
The top NFM-P process in the CPU column should be the Java process. However, the Java process should not consume too much CPU time. Some Oracle processes may also consume CPU time, depending on the database load.
-
Press Ctrl-C to stop the command.
|
4 |
Perform the following steps to view a CPU activity summary.
-
Enter the following command:
# mpstat time ↵
where time is the interval, in seconds, between CPU polls; a value between 10 and 60 is recommended
-
Review the command output.
mpstat output example
CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
all 0.25 0.00 0.17 0.00 0.00 0.00 0.00 0.00 99.58
all 0.50 0.00 0.08 0.08 0.00 0.00 0.00 0.00 99.33
all 0.17 0.00 0.08 0.00 0.00 0.00 0.00 0.00 99.75
all 0.25 0.00 0.17 0.08 0.00 0.00 0.00 0.00 99.50 |
mpstat field descriptions
Field |
Description (events per second unless noted) |
CPU |
Processor number; the keyword all indicates that statistics are calculated as averages among all processors |
%usr |
Percentage of CPU utilization at the user application level |
%nice |
Percentage of CPU utilization at the user level with nice priority |
%sys |
Percentage of CPU utilization at the system level; does not include time spent servicing hardware and software interrupts |
%iowait |
Percentage of CPU idle time during which the system had an outstanding disk I/O request |
%irq |
Percentage of CPU time spent servicing hardware interrupts |
%soft |
Percentage of CPU time spent servicing software interrupts |
%steal |
Percentage of time spent in involuntary wait by the virtual CPU or CPUs during hypervisor servicing of another virtual processor |
%guest |
Percentage of CPU time spent running a virtual processor |
%idle |
Percentage of CPU idle time without an outstanding disk I/O request |
Review the %usr, %sys and %idle statistics, which together indicate the level of CPU saturation. A Java application that fully uses the CPUs typically falls within 80 to 90 percent of the %usr value, and 20 to 10 percent of the %sys value. A smaller percentage for the %sys value indicates that more time is being spent running user code, which generally results in better execution of the application.
-
Press Ctrl-C to stop the command.
|
5 |
If processes are competing for CPU resources, perform the following steps to isolate the information about a single process.
-
Check the state of CPUs by typing:
ps -aux ↵
A list of processes is displayed.
-
Review the command output.
For CPU troubleshooting, the important data is listed in the %CPU row. If a process is taking 90% or more of the CPU resources, there may be a problem with the process. Contact your account or technical support representative for more information.
-
Press Ctrl-C to stop the command.
|
6 |
Contact technical support and provide the data obtained in the previous procedure steps.
End of steps |