cpu、内存、io、内存、负载

Cpu
uptime,vmstat,mpstat,top,pidstat 只能查询到cpu及负载的的使用情况。
perf可以跟着到进程内部具体函数耗时情况,并且可以指定内核函数进行统计,指哪打哪
查看cpu
cat /proc/cpuinfo | grep processor
查看系统cpu使用情况 top
查看所有cpu核信息 mpstat -P ALL 1
查看cpu使用情况以及平均负载 vmstat 1
进程cpu的统计信息 pidstat -u 1 -p pid
跟踪进程内部函数级cpu使用情况 perf top -p pid -e cpu-clock

内存
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 ./程序名

磁盘IO

查看系统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^Cperf report

网络

显示网络统计信息 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 socketsss -u -a//tcp,etcp状态sar -n TCP,ETCP 1
查看网络IOsar -n DEV 1//抓包以包为单位进行输出 tcpdump -i eth1 host 192.168.1.1 and port 80 //抓包以流为单位显示数据内容 tcpflow -cp host 192.168.1.1

系统负载

查看负载情况 uptime top vmstat
统计系统调用耗时情况 strace -c -p pid
跟踪指定的系统操作例如 epoll_waitstrace -T -e epoll_wait -p pid
查看内核日志信息 dmesg

原文地址:https://www.cnblogs.com/jiayan666/p/14282485.html