All systems operational System status

Linux 2 Sep 2026 2 min read

How to Troubleshoot High CPU Usage on Linux Servers

A practical guide to troubleshooting common Linux server issues, including high CPU usage, memory pressure, disk problems, service failures, and connectivity issues.


Linux Server Troubleshooting Guide

Linux servers can experience performance and availability issues for many different reasons. A structured troubleshooting process helps identify the root cause quickly and reduces unnecessary downtime.

1. Check CPU Usage

Start by checking which processes are consuming CPU resources.

top

You can also use:

ps aux --sort=-%cpu | head

Look for processes with consistently high CPU usage rather than a short temporary spike.

2. Check Memory Usage

Use the following command to understand available memory and swap usage:

free -h

If available memory is consistently low and swap usage is increasing, investigate the processes consuming the most memory.

ps aux --sort=-%mem | head

3. Check Disk Space

A full filesystem can cause applications and services to fail.

df -h

To identify large directories, use:

du -sh /* 2>/dev/null | sort -h

Pay particular attention to log files, application data, temporary files, and backup directories.

4. Check Server Services

If a website or application is unavailable, check the relevant service status.

systemctl status nginx
systemctl status php8.3-fpm
systemctl status mariadb

If a service has failed, inspect its logs before restarting it.

5. Check Network Connectivity

For connectivity problems, verify DNS resolution and network reachability.

ping -c 4 example.com
curl -I https://example.com
ss -tulpn

These checks can help determine whether the problem is related to DNS, connectivity, listening ports, or the application itself.

6. Check Logs

Logs are one of the most important sources of information during troubleshooting.

journalctl -xe
journalctl -u nginx
journalctl -u php8.3-fpm

Look for errors that occurred around the time the problem started.

7. Follow a Structured Troubleshooting Process

  1. Confirm the reported symptom.
  2. Check whether the issue is still occurring.
  3. Review CPU, memory, disk, and network resources.
  4. Check the status of affected services.
  5. Review relevant logs.
  6. Identify the most likely root cause.
  7. Apply the smallest safe remediation.
  8. Verify that the service has recovered.
  9. Document the root cause and remediation.

Conclusion

Effective Linux server troubleshooting is not about randomly restarting services. A structured approach based on system metrics, service status, logs, and controlled remediation makes it easier to identify the root cause and restore service safely.

← All resources Get technical support →