Linux-系统性能指标

目录

系统负荷(load average)

CPU、内存使用情况(vmstat)

磁盘IO(iostat、iotop)

网络IO(iftop)


系统负荷(load average)


查看系统负荷命令:
 
## 查看系统负载
uptime

输出:

11:54:03 up 759 days, 12:59, 212 users,  load average: 21.52, 18.95, 22.02

其中 load average就是“系统的平均负荷”。这三个数字分别是 1分钟、5分钟、15分钟内系统的平均负荷。

判断系统负荷情况:
 

系统所能承受的负荷最大值 = 总逻辑核心数

 每个逻辑核的平均负荷值(V) = 系统平均负荷值 / 总逻辑核心数

  • 如果 1分钟的系统负荷 V 大于 1.0,其它两个时间都小于 1.0,表明这只是暂时现象,问题不大。
  • 如果 15分钟的系统负荷 V 大于 1.0,说明该现象一直存在,需要解决问题,把该值降下来。
  • 当 V 值大于 0.7 时,就要引起关注,必须排查问题,防止情况恶化。

CPU、内存使用情况(vmstat)


## 1秒打印一次,一共打印5次
vmstat 1 5

输出:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
  • r:表示运行的进程数量(建议值不要大于逻辑cpu核数)

  • b:表示阻塞的进程数量

  • si:每秒从磁盘读取虚拟内存的大小(如果大于 0,表示物理内存不够用)

  • so:每秒虚拟内存写入磁盘的大小

  • bi:块设备每秒接收的块数量

  • bo:块设备每秒发送的块数量

  • in:每秒cpu的中断次数,包括时间中断

  • cs:每秒上下文切换次数(包括:函数调用、线程切换),该值越小越好

  • us:用户(用户程序)cpu时间

  • sy:系统(内核程序)cpu时间

  • id:cpu处于空闲时间的比例

  • wa:cpu等待IO时间的比例

  • st:丢失时间,也就是虚拟cpu等待实际cpu的时间百分比

磁盘IO(iostat、iotop)


## 1秒打印一次,一共打印5次
iostat -x 1 5

输出:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.18    0.00    2.51    4.20    0.00   85.12
Device    r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
  • r/s:delta(rio)/s,每秒完成的读 I/O 设备次数

  • w/s:delta(wio)/s,每秒完成的写 I/O 设备次数

  • rsec/s:delta(rsect)/s,每秒读扇区数

  • wsec/s:delta(wsect)/s,每秒写扇区数

  • rkB/s:每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节(需要计算)

  • wkB/s:每秒写K字节数。是 wsect/s 的一半(需要计算)

  • rrqm/s:delta(rmerge)/s,每秒进行 merge 的读操作数目

  • wrqm/s:delta(wmerge)/s,每秒进行 merge 的写操作数目

  • %rrqm:读请求在merge后占merge前的百分比

  • %wrqm:写请求在merge后占merge前的百分比

  • r_await:每个读操作平均所需的时间。不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间

  • w_await:每个写操作平均所需的时间。不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间

  • aqu-sz:平均请求队列长度

  • rareq-sz:平均读请求的大小

  • wareq-sz:平均写请求的大小

  • avgrq-sz:平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)

  • avgqu-sz:平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。

  • await:平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)

  • svctm:平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)

  • %util:一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)

如果 %util 接近 100,说明 IO请求太多,IO系统已经满负荷,该磁盘可能存在瓶颈。
 
也可以使用 iotop 查看进程的磁盘IO:
 
## 按 p 键把TID变成PID,按 o 键显示当前活跃的进程
iotop

输出:

PID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND

网络IO(iftop)


查看进程的网络IO:
 
## 查看网络的使用情况
iftop -n

## 查看某个IP的连接,找到连接对应的PID(进程id),也就是该进程对应的网络IO
netstat -antop |grep 10.0.0.1

输出:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name     Timer

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值