What is considered high memory, high CPU, or high I/O?
You will want first to determine it is related to memory, CPU, or I/O; you can do this with the sar command. Before you understand the sar output, you will want first to know what is considered high memory, CPU load, and high I/O.
- What load is considered high?
- What is considered high I/O?
- Understanding Memory Usage On Linux Operating Systems
Determining the cause
Next, you can use the sar utility to determine if the load is due to memory, high CPU load, or high I/O. The sar command will provide you with historical and up to date information on the system statistics.
In the sar output, you will see a "steal" column; if this high, you will want to review the article:
If you experience high memory or CPU usage, you can use the ps command to list all processes and sort them by usage. The list sorted by usage can help you determine which processes are the culprit quickly.
To see a live preview of the system's processes, you can use the top command.
If the issue is determined to be high I/O, you can check what processes use the most I/O using iotop, iostat, and iowait. iotop will let you review the I/O usage live, similar to the top command.
- How to diagnose high I/O and high load with iotop
- How to diagnose high loads with the "iostat" command
- What is IOWait relative to the sar command and when should I be concerned?
Common causes of high load
PHP High load is usually due to high traffic but can sometimes also be related to php-fpm needing to be tuned.
High loads caused by httpd, you will want to review the Apache scoreboard first.
- Understanding the Apache scoreboard
- How can I tell if Apache is experiencing a DDoS attack?
- How do I troubleshoot Apache MaxRequestWorkers errors?
The high load caused by MySQL can be due to a low query cache, or possibly none.
For more information, you should reach out to your System Administrator or hire a qualified System Administrator if you do not have one.