线上问题常用排查命令整理

93 阅读2分钟

CPU与线程

# 打印详情
pstree -p > threadNum.log   
# 查找数量
pstree -p |wc -l    
# 打印指定进程的线程数量
ps -Tp [pid]|wc -l    

网络抓包

抓包

tcpdump tcp and host www.baiud.com  -s 0  -c 10000 -ttt -w tcp_baidu.pcap

tcpdump需要root角色才能操作

常用的参数

  • -s 0-s 是 snapshot length 的缩写,也就是设置每个数据包捕获的最大字节数;0 意味着捕获完整的数据包,不进行截断
  • -w <file>:设置捕获数据包的保存文件
  • -c <count>:表示count,即指定要捕获的数据包数量
  • -tttt:显示绝对时间戳
  • -r <file>:从指定pcap文件中读取数据包并分析,以人类可读形式输出(直接打印pcap文件会乱码,如果需要在机器上直接读取文件需要使用-r来打印成人类可读形式)

其他常用的参数

输出控制参数
  • -i <interface> :指定要监听的网络接口。例如,-i eth0 表示监听 eth0 网络接口;-i any 表示监听所有可用的网络接口,多网卡的时候可能会用到
  • -n:不将 IP 地址和端口号解析为域名和服务名,可加快输出速度。
  • -nn:不进行任何名称解析,既不解析 IP 地址也不解析端口号。
  • -t:不显示时间戳。
  • -tt:显示未经格式化的时间戳。
  • -ttt:显示相对时间戳,即从上一个数据包捕获到当前数据包所经过的时间。
  • -tttt:显示完整的日期和时间戳,绝对时间戳。
  • -v-vv-vvv:增加输出的详细程度,-v 为详细,-vv 更详细,-vvv 最详细。
过滤条件参数
  • host <host> :只捕获源主机或目的主机为指定主机的数据包。例如,host www.example.com
  • src <host> :只捕获源主机为指定主机的数据包。
  • dst <host> :只捕获目的主机为指定主机的数据包。
  • port <port> :只捕获源端口或目的端口为指定端口的数据包。例如,port 80
  • src port <port> :只捕获源端口为指定端口的数据包。
  • dst port <port> :只捕获目的端口为指定端口的数据包。
  • tcpudpicmp:分别只捕获 TCP、UDP、ICMP 协议的数据包。
文件操作参数
  • -w <file> :将捕获的数据包写入指定的文件,文件格式为 PCAP 格式。例如,-w capture.pcap
  • -r <file> :从指定的 PCAP 文件中读取数据包并进行分析。

arthas

arthas.jar下载

curl -O https://arthas.aliyun.com/arthas-boot.jar

arthas常用命令操作