Linux常用的排查cpu、io、网络、内存常用的工具

1、cpu

工具 描述
uptime 平均负载
vmstat 包括系统范围的cpu平均负载
mpstat 查看所有cpu核信息
top 监控每个进程cpu用量
sar -u 查看cpu信息
pidstat 每个进程cpu用量分解
perf cpu剖析和跟踪,性能计数分析

说明:

  • uptime,vmstat,mpstat,top,pidstat只能查询到cpu及负载的的使用情况。
  • perf可以跟着到进程内部具体函数耗时情况,并且可以指定内核函数进行统计,指哪打哪。

使用方式

//查看系统cpu使用情况
top

//查看所有cpu核信息
mpstat -P ALL 1

//查看cpu使用情况以及平均负载
vmstat 1

//进程cpu的统计信息
pidstat -u 1 -p pid

//跟踪进程内部函数级cpu使用情况
perf top -p pid -e cpu-clock

2、分析内存

工具 描述
free 缓存容量统计信息
vmstat 虚拟内存统计信息
top 监视每个进程的内存使用情况
pidstat 显示活动进程的内存使用统计
pmap 查看进程的内存映像信息
sar -r 查看内存
dtrace 动态跟踪
valgrind 分析程序性能及程序中的内存泄露错误

说明

  • free,vmstat,top,pidstat,pmap只能统计内存信息以及进程的内存使用情况。
  • valgrind可以分析内存泄漏问题。
  • dtrace动态跟踪。需要对内核函数有很深入的了解,通过D语言编写脚本完成跟踪。

使用方式

//查看系统内存使用情况
free -m

//虚拟内存统计信息
vmstat 1

//查看系统内存情况
top

//1s采集周期,获取内存的统计信息
pidstat -p pid -r 1

//查看进程的内存映像信息
pmap -d pid

//检测程序内存问题
valgrind --tool=memcheck --leak-check=full --log-file=./log.txt  ./程序名

3、io分析

工具 描述
iostat 磁盘详细统计信息
iotop 按进程查看磁盘IO的使用情况
pidstat 按进程查看磁盘IO的使用情况
perf 动态跟踪工具

使用方式

//查看系统io信息
iotop

//统计io详细信息
iostat -d -x -k 1 10

//查看进程级io的信息
pidstat -d 1 -p  pid

//查看系统IO的请求,比如可以在发现系统IO异常时,可以使用该命令进行调查,就能指定到底是什么原因导致的IO异常
perf record -e block:block_rq_issue -ag
^C
perf report

4、网络分析

工具 描述
ping 主要透过 ICMP 封包 来进行整个网络的状况报告
traceroute 用来检测发出数据包的主机到目标主机之间所经过的网关数量的工具
netstat 用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况
ss 可以用来获取socket统计信息,而且比netstat更快速更高效
host 可以用来查出某个主机名的 IP,跟nslookup作用一样
tcpdump 是以包为单位进行输出的,阅读起来不是很方便
tcpflow 是面向tcp流的, 每个tcp传输会保存成一个文件,很方便的查看
sar -n DEV 网卡流量情况
sar -n SOCK 查询网络以及tcp,udp状态信息

使用方式

//显示网络统计信息
netstat -s

//显示当前UDP连接状况
netstat -nu

//显示UDP端口号的使用情况
netstat -apu

//统计机器中网络连接各个状态个数
netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

//显示TCP连接
ss -t -a

//显示sockets摘要信息
ss -s

//显示所有udp sockets
ss -u -a

//tcp,etcp状态
sar -n TCP,ETCP 1

//查看网络IO
sar -n DEV 1

//抓包以包为单位进行输出
tcpdump -i eth1 host 192.168.1.1 and port 80 

//抓包以流为单位显示数据内容
tcpflow -cp host 192.168.1.1

5、系统负载

工具 描述
top 查看系统负载情况
uptime 查看系统负载情况
strace 统计跟踪内核态信息
vmstat 查看负载情况
dmesg 查看内核日志信息

使用方式

//查看负载情况
uptime

top

vmstat

//统计系统调用耗时情况
strace -c -p pid

//跟踪指定的系统操作例如epoll_wait
strace -T -e epoll_wait -p pid

//查看内核日志信息
dmesg

内容来自https://www.jianshu.com/p/0bbac570fa4c

猜你喜欢

转载自blog.csdn.net/qq_43227570/article/details/84333747