LINUX性能分析之,网口,CPU IOCPU IO WAIT超过25%可以表示磁盘子系统可能没有被正确平衡,也可能是磁盘密集工作负载的结果
us:用户态使用的cpu时间比合理值:60-85%,
sy:系统态使用的cpu时间比
Id(idle)空闲时间,如果id经常小于40,表示cpu的负荷很重
如果在一个多用户系统中us+sy时间超过85%,则进程可能要花时间在运行队列中等待
计算密集型:一些进程绝大多数时间在计算上
I/O密集型:有一些进程则在input 和output上花费了大多时间
数据库的IO密集型和CPU密集型是相对概念。一个查询对一个CUP很多很快的服务器而言,可能是IO密集型;
对一个装备高速磁盘阵列的服务器而言可能变成CPU密集型。
查看流量的几种方式:
zabbix:查过去和现在的
iftop:详细查看最近40s内的流量使用情况
ifstat:简单实时查看流量使用情况(配合watch使用 watch -n 1 ifstat)
sar:查询最近一个月内的历史流量,历史CPU,历史磁盘IObalant:如果有部署balant平台的话,可以生成主机的网卡历史数据图形
1、iftop
iftop–i eth1 查看eth1这块网卡的流量使用情况,
最上面的流量条使用b可以开启或者关闭
中间的<= =>这两个左右箭头,表示的是流量的方向。
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
h键即可进入交互选项界面
按s显示/隐藏本机的host信息;
按d显示/隐藏远端目标主机的host信息; —>有用,用于统计每个网卡的总流量
按t显示格式为2行/1行/只显示发送流量/只显示接收流量; —>有用,用于统计单个IP的单向流量
按S显示/隐藏的端口信息;
按D显示/隐藏远端目标的端口信息;
iftop -n:直接显示IP, 不进行DNS反解析
2、sar
sar -u每隔一分钟显示当天cpu的使用情况
sar -r每隔一分钟显示当天内存的使用情况
-n参数很有用,他有6个不同的开关:DEV | EDEV | NFS | NFSD | SOCK | ALL 。DEV显示网络接口信息,
EDEV显示关于网络错误的统计数据,
NFS统计活动的NFS客户端的信息,
NFSD统计NFS服务器的信息,
SOCK显示套 接字信息,
ALL显示所有5个开关。
这6个不同的开关是按照顺序显示的,一个显示完了再显示另外一个。
---------------------
sar -n DEV 显示当天的网卡流量信息
sar -n DEV -f /var/log/sa/saxx#查看xx日的网卡流量历史
/var/log/sa/目录下有两种文件,一种是sa开头的,
另外一种是sar开头的
sa开头的文件不能直接cat,只能用 sar -f 查看,sar开头的可以用cat查看。
sar -f /var/log/sa/sa25
sar 命令会每个月循环使用,这个月sa01查看的是这个月1号的网卡流量,
实时当天查看网卡流量
#sar -n DEV 1 5 【每间隔1秒刷新一次,共5次】
IFACE:LAN接口
rxpck/s:每秒钟接收的数据包
txpck/s:每秒钟发送的数据包
rxbyt/s:每秒钟接收的千字节数(1MB=1024KB 1KB)
txbyt/s:每秒钟发送的千字节数
rxcmp/s:每秒钟接收的压缩数据包
txcmp/s:每秒钟发送的压缩数据包
rxmcst/s:每秒钟接收的多播数据包
使用sar查询接口流量的时候又不大,每秒接受1000多个包,合计大小是1k左右
3、 ifstat:简单测量流量的大小:
3092M的单位是3092Mb不是MB
sar 常用选项包括:
-b:报告I/O使用情况以及传输速率。(只适用于2.5及之前的内核,所以新内核有可能不支持这个选项)
-B:报告“页”使用情况
-c:报告进程创建情况
-d:报告每一个块设备的使用情况(当你使用时,你会发现在DEV列有类似dev1-7格式的字符串,其中1代表设备的主序号,n代表设备的从序号,而且rd_sec/s列和wr_sec/s列的单位都是512bytes,也就是512B,也就是0.5KB)
-I:汇报中断情况
-n:汇报网络情况
-P:设定CPU
-q:汇报队列长度和负载信息
-r:汇报内存和交换区使用情况
-R:汇报内存情况
-u:汇报CPU使用情况
-v:汇报i节点、文件和其他内核表信息
-w:汇报系统上下文切换情况
-x:可以针对某个特定PID给出统计信息,
可以直接指定进程ID号;
也可以指定为SELF,这样就是检测sar进程本身;
如果设定为ALL,则表示汇报所有系统进程信息。
-X:汇报特定PID的子进程的信息
-y:设定TTY设备的信息。
FYI:
eg1:sar 查询接口流量排名前二十 的时间点
sar -n DEV -f /var/log/sa/sa26 | grep 05: |sort -k 4 -r| head -n 20
eg:查看指定文件7点到9点CPU使用记录,如要看负载加参数-q
sar -s 07:00:00 -e 10:00:00 -f /var/log/sa/sa03
eg:查看历史cpu负载
sar -q -f sa13