Book Consultation Submit Ticket

Linux SRE Production Troubleshooting Runbook: High System Load

This runbook provides a systematic approach to diagnosing high system load on Linux production servers, covering symptoms, diagnostic commands, risk controls, rollback, verification, and when to escalate to OpsGlobal.

Linux SRE Production Troubleshooting Runbook: High System Load
DevOps 6min 60 views 2026-07-06
LinuxSRETroubleshootingHigh LoadPerformance

Scenario

A production web server experiences overall slowness, with users reporting page timeouts. Monitoring shows system load average consistently above 80% of CPU cores.

Symptoms

  • Application request latency increases significantly
  • SSH login feels sluggish
  • top or uptime shows high load average
  • May be accompanied by high CPU usage, high I/O wait, or memory swapping

Diagnosis Steps

  1. Quick system check: bash uptime top -bn1 | head -n 20 free -h df -h
  2. Analyze CPU usage: bash mpstat -P ALL 1 5 # Focus on %usr, %sys, %iowait
  3. Identify high-CPU processes: bash ps aux --sort=-%cpu | head -10 pidstat -u 1 5
  4. Check disk I/O (if %iowait high): bash iostat -x 1 5 # Look at await, %util
  5. Trace system calls (carefully): bash strace -p <PID> -c -S time 2>&1 | head -20 # run only 5 seconds
  6. Kernel logs: bash dmesg --level=err,warn | tail -20

Risk Controls

  • Before running diagnostics on production, prefer a replica or low-traffic node
  • Limit strace duration (use -S or timeout) to avoid hanging processes
  • Avoid kill -9 in production; use kill -TERM or restart services
  • Log all commands executed and their output

Rollback Steps

If a mistake is made or recovery needed: - If a critical process was killed, restart the service immediately: systemctl restart <service-name> - If system parameters (e.g., vm.swappiness) were changed, revert and reload: sysctl -p - If temporary tools were installed, remove and clean: yum remove -y <tool> or apt-get purge

Verification

  • Confirm load has dropped: uptime and top show normalized load average
  • Verify application response: test an API endpoint with curl for timing
  • Check that monitoring alerts clear

When to Submit an OpsGlobal Ticket

  • Root cause is unclear (e.g., suspected hardware failure)
  • Load spikes persist uncontrollably
  • Deep debugging (e.g., perf analysis) or kernel tuning needed
  • Capacity expansion or architectural changes required

Use cases

Useful for teams handling DevOps issues and needing a clear troubleshooting and delivery workflow.

Problem background

This runbook provides a systematic approach to diagnosing high system load on Linux production servers, covering symptoms, diagnostic commands, risk controls, rollback, verification, and when to escalate to OpsGlobal.

Troubleshooting steps

Confirm impact and recent changes, collect logs, configuration and metrics, then apply fixes from low to high risk.

Command examples

Replace sample resource names with real values and store passwords, tokens and keys in environment variables.

Risks

Before production changes, confirm backups, access boundaries, change windows and rollback paths.

Rollback plan

Keep original configuration and release versions; roll back config, images or database changes if metrics degrade.

Deliverables

Root-cause notes, key commands, remediation steps, verification results and follow-up recommendations.

!

Need help with a similar technical issue?

If your servers, Kubernetes, Docker, CI/CD, databases or monitoring systems have similar issues, submit logs and config files for remote diagnosis.

Ticket Contact on WhatsApp Consult