预约咨询 提交工单

Linux SRE 生产故障排查实战手册

本文详细介绍了在生产环境中遇到 Linux 服务器性能问题时的排查步骤、命令、风险控制、回滚方案及何时联系 OpsGlobal 支持。

Linux SRE 生产故障排查实战手册
DevOps 6min 14 浏览 2026-06-16
LinuxSRE故障排查性能调优

场景

某生产环境 Linux 服务器(运行 Web 服务)响应缓慢,健康检查失败,用户报告延迟增加。

症状

  • uptime 显示平均负载高于 CPU 核心数(如负载 20,CPU 16 核)。
  • top 中进程占用大量 CPU 或内存,或处于 D 状态(不可中断睡眠)。
  • vmstat 显示 r 列(运行队列)持续大于 CPU 核心数,或 si/so 非零(大量交换)。
  • iostat 显示磁盘利用率接近 100% 或 await 时间过高(>100ms)。
  • 外部 curl 请求超时或返回 5xx。

诊断步骤

  1. 快速概览uptimefree -hdf -h
  2. CPU 分析top -bn1 | head -20,按 P 排序 CPU,按 M 排序内存。检查是否有异常进程。
  3. 内存分析vmstat 1 5 检查交换活动。cat /proc/meminfo 查看详细内存。
  4. 磁盘分析iostat -x 1 5 关注 %utilr/sw/sawaitiotop 查看具体进程 I/O。
  5. 网络分析netstat -tan | grep :80 | wc -l 查看连接数,ss -tn 更高效。
  6. 系统日志journalctl -u <服务名> --since "5 minutes ago"tail -100 /var/log/syslog
  7. 进程跟踪strace -p <PID> -c 统计系统调用,找出耗时操作。

风险控制

  • 不要随意 kill 进程:先 kill -0 <PID> 测试,或使用 kill -3 <PID> 获取线程堆栈。
  • 避免在生产环境直接重启服务,除非明确知道问题原因。
  • 若怀疑资源泄漏,先保存 topps 快照,再做操作。

回滚方案

  • 若是最近配置变更:还原备份配置(如 /etc/nginx/nginx.conf.bak)。
  • 若是软件更新:回退到前一版本(如 apt-get install <pkg>=<prev-version>)。
  • 若无法快速定位,可重启服务或扩缩容(若使用容器编排)。

验证

  • 确认服务恢复:curl -I http://localhost:80 返回 200。
  • 检查负载:uptime 降至正常值。
  • 监控指标:CPU 和内存使用回落,磁盘 I/O 降低。
  • 运行预定义的健康检查脚本。

何时提交 OpsGlobal 工单

  • 排查 30 分钟后仍未找到根因。
  • 需要深入的内核级调试(如 perfftrace)。
  • 问题涉及多节点或集群层面。
  • 需要安排内核或硬件供应商介入。

提交工单时请附上以下信息: - 时间窗口、症状描述。 - 已执行的命令输出(如 top -bn1vmstat)。 - 相关日志片段。

适用场景

适合正在处理 DevOps、Linux, SRE, 故障排查, 性能调优 相关问题的团队,用于快速建立排查路径和交付标准。

问题背景

本文详细介绍了在生产环境中遇到 Linux 服务器性能问题时的排查步骤、命令、风险控制、回滚方案及何时联系 OpsGlobal 支持。

排查步骤

先确认影响范围和最近变更,再收集日志、配置、指标和链路数据,最后按风险从低到高执行修复。

命令示例

示例命令请替换为你的真实资源名,并使用环境变量保存账号、密码、token 等敏感信息。

风险说明

生产环境操作前需要确认备份、权限边界、变更窗口和回滚路径,避免扩大故障影响。

回滚方案

保留原配置和发布版本;如修复后指标异常,立即回退配置、镜像或数据库变更并复核日志。

交付清单

问题定位记录、关键命令、修复步骤、验证结果、后续优化建议。

!

遇到类似技术问题?

如果你的服务器、K8s、Docker、CI/CD、数据库或监控系统出现类似问题,可以提交日志和配置文件,我们帮你远程诊断。

工单 WhatsApp 联系 咨询