本文总结了常用的排查 linux 服务器故障的命令行指令,这些指令能够查看操作系统的实时状态信息,在排查问题时起到辅助作用。

进程状态

  • ps

查看系统内的进程列表,可以看到内存、 CPU 等信息

  • top / htop

按照资源的使用情况排序显示系统内的进程列表

  • pidstat

针对某一进程输出系统资源的使用情况,包括: CPU、内存、I/O 等

  • pstack

打印迸程内的调用堆钱

  • strace

跟踪进程内的工作机制

内存状态

  • free

查看系统的内存使用情况

  • pmap

查看迸程的详细的内存分配情况

CPU状态

  • vmstat

查看系统的 CPU 利用率、负载、内存等信息

  • mpstat

查看系统的 CPU 利用率、负载,并且按照 CPU 核心分别显示相关信息

磁盘I/O

  • iostat

查看磁盘信息及传输速度

  • swapon

查看系统交换区的使用情况

  • df

显示磁盘挂载的信息

网络状态

  • ifconfig / ip

显示网卡挂载的信息

  • ping

检测某服务器到其他服务器的网络连接情况

  • telnet

检测某服务器的端口是否正常对外服务

  • nc

模拟开启 TCP/IP 的服务器

  • mtr

检测网络连通性问题,并可以获取某一个域名或者 IP 的丢包率

  • nslookup

判断 DNS 能否正确解析域名,以及将域名解析到哪个 IP 地址

  • traceroute

跟踪网络传输的详细路径,显示每一级网关的信怠

  • sar

为全面监控网络、磁盘、CPU、内存等信息的轻量级工具

  • netstat / ss

通常用于查看网络端口的连接情况

  • iptraf

用于获取网络 ν0 的传输速度及其他网络状态信息

  • tcpdump

可以拦截本机网卡上任何协议的通信内容,用于调试网络问题

  • nmap

扫描某一服务器打开的端口

  • ethtool

查看或修改网卡的配置