进程僵死
线上服务异常及排查思路
对于部署在虚拟机或者物理机上的服务,当发生异常时,我们可以按照以下思路进行排查:
1. 确认服务进程状态以及系统资源的使用情况
通过排查系统资源的使用情况,我们可以初步判断系统环境是否健康。常用指令如下:
top
:查看系统资源状态,包括CPU使用率、内存使用率以及当前运行的进程的基础信息df
:查看系统存储状态iostat
:查看系统磁盘IO状态ping
:查看网络质量
2. 确认服务进程详细信息
通过排查服务进程的详细信息,可以大致定位问题发生场景。常用指令如下:
ps
:通过ps -ef
查看系统进程的详细信息strace
:通过strace -p <pid>
查看进程的系统调用和信号,是否卡在某个系统调用上
3. 排查日志
日志是最直观有效的问题排查方案。通过日志,我们可以定位异常发生的上下文信息、程序运行时的堆栈信息等。常用指令如下:
tail
:通过tail -n 100
日志文件最后100行grep
:通过tail -n 100 | grep key
过滤关键字信息