---
order: 2
---
# 服务器宕机故障排查

\[\[toc]]

当服务器无法访问时通过执行一些系统命令获取一些运行状态信息能帮助技术人员快速定位问题，这些命令是：

## 查看操作系统资源耗费情况

见[如何查看操作系统资源使用情况](./如何查看操作系统资源使用情况.md)，看看系统的瓶颈是在IO／cpu还是内存上，如果是在cpu上，还需要看看是哪个进程，哪个线程：

```sh
top //显示耗费cpu的进程  
top -p 进程号 -H //显示这个进程内最耗费cpu的线程，把列出的pid转换成小写16进制可在jvm堆栈中找到堆栈信息
```

## 获取JVM线程堆栈

获取jvm线程堆栈，可以帮助技术人员判断服务器正在执行哪些代码逻辑，“卡”在什么地方了，具体的操作方法见：[如何获取服务器JVM运行堆栈](./如何获取服务器JVM运行堆栈.md)

## 查看是否OutOfMemoryError(OOM)

当系统OOM时，由于JVM一直试图gc回收内存，但一直回收不到内存也可能表现为宕机，更多信息见[OOM（OutOfMemoryError）故障排查](./OOM（OutOfMemoryError）故障排查.md)
