对于服务器负载高、意外重启、带宽跑高或其他异常现象,可以按以下思路进行排查:

  1. 收集信息:
  • 查看服务器监控数据,如CPU使用率、内存使用率、磁盘I/O、网络带宽等指标。
  • 查看系统日志,如/var/log/messages, /var/log/syslog等,关注错误、警告信息。
  • 对异常发生时间段进行确认。
  1. 分析进程:
  • 使用top、ps等命令查看占用资源高的进程,关注CPU、内存占用率高的进程。
  • 使用lsof、netstat等命令分析进程的磁盘、网络使用情况。
  • 对可疑进程进行分析,确认是否存在异常。
  1. 网络分析:
  • 使用iftop、nethogs等工具分析网络流量情况。
  • 查看是否存在异常的网络连接,如DDos攻击、端口扫描等。
  • 分析占用带宽的源IP、目的IP、端口号等。
  1. 磁盘分析:
  • 使用df、du命令查看磁盘使用情况,关注磁盘使用率高的目录。
  • 使用iotop查看磁盘I/O情况,分析占用I/O高的进程。
  • 检查磁盘是否存在硬件问题,如磁盘坏道、SMART信息异常等。
  1. 内存分析:
  • 使用free命令查看内存使用情况。
  • 使用vmstat分析内存的swap交换情况。
  • 关注是否存在内存泄露问题。
  1. 日志分析:
  • 细致分析相关日志信息,如access log、error log、Transaction log等。
  • 从日志中寻找异常点,如高频错误、异常请求等。
  1. 代码排查:
  • 对可疑的代码模块进行 review 和分析。
  • 通过调试、性能分析等手段定位代码问题。
  1. 复现验证:
  • 尝试复现问题,模拟异常场景,便于分析问题。
  • 对比异常发生前后的变更,定位引入问题的点。
  1. 架构分析:
  • 分析系统架构设计是否存在短板。
  • 评估现有架构是否符合高可用、可扩展的要求。
  1. 咨询专家:
  • 对棘手的问题,寻求有经验的专家帮助。
  • 通过讨论、交流,获得更多思路和分析方法。

总之,服务器异常排查需要细致、耐心,从多个角度着手分析。同时要做好监控和日志等基础工作,为快速定位问题打好基础。