Linux系统性能监控工具uptime、issoat、vmstat、sar

目录

uptime

iostat

vmstat

sar

uptime

18:05:23 up 213 days, 1:29, 1 user, load average: 0.72, 0.45, 0.44

格式:

时间 运行天数,当天开机的具体时间,一个用户在线,五分钟,十分钟,十五分钟的负载

命令介绍:

load average 平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数, 它和cpu使用率并没有直接关系。五分钟 十分钟 十五分钟的值要小于cpu个数,当平均负载比cpu的个数还大时,系统已经出现了过载。

iostat

命令介绍:

报告中央处理器(CPU)统计信息和整个系统、适配器、tty 设备、磁盘和 CD-ROM 的输入/输出统计信息。iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析

查看cpu状态命令:

iostat -c 1 10

cpu属性值说明:

%userCPU处在用户模式下的百分比。
%niceCPU处在带NICE值的用户模式下的百分比。
%systemCPU处在系统模式下的百分比。
%iowaitCPU等待输入输出完成的百分比。
%steal管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待百分比。
%idleCPU空闲百分比。

备注:
如果%idle值高,表示CPU较空闲

如果%iowait的值过高,表示硬盘存在I/O瓶颈

如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量。

如果%idle值持续低于cpu核数,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU。

查看硬盘io信息:

iostat -k  2  3

tps该设备每秒的传输次数
kB_read/s每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s每秒向设备(drive expressed)写入的数据量;
kB_read读取的总数据量;
kB_wrtn写入的总数量数据量;

查看设备使用率(%util)、响应时间(await)命令:

iostat -d -x -k 1 10

rrqm/s每秒进行 merge 的读操作数目.即 delta(rmerge)/s
wrqm/s每秒进行 merge 的写操作数目.即 delta(wmerge)/s
r/s每秒完成的读次数
w/s每秒完成的写次数
rkB/s每秒读数据量(kB为单位)
wkB/s每秒写数据量(kB为单位)
avgrq-sz平均每次IO操作的数据量(扇区数为单位)
avgqu-sz平均等待处理的IO请求队列长度
await平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
svctm平均每次IO请求的处理时间(毫秒为单位)
%util采用周期内用于IO操作的时间比率,即IO队列非空的时间比率,即一秒中有百分之多少的时间用于 I/O

备注:

如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷

dle小于70% IO压力就较大了,一般读取速度有较多的wait。

vmstat

说明:vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。

1.用法

vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]
vmstat [-V]

-a显示活跃和非活跃内存
-f显示从系统启动至今的fork数量
-m显示slabinfo
-n只在开始时显示一次各字段名称
-s显示内存相关统计信息及多种系统活动数量
-d显示磁盘相关统计信息。
-p显示指定磁盘分区统计信息
-S使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
-V显示vmstat版本信息。

2.字段含义说明:

类别

项目

含义

说明

Procs(进程)

r

等待执行的任务数

展示了正在执行和等待cpu资源的任务个数。当这个值超过了cpu个数,就会出现cpu瓶颈。

B

等待IO的进程数量

Memory(内存)

swpd

正在使用虚拟的内存大小,单位k

free

空闲内存大小

buff

已用的buff大小,对块设备的读写进行缓冲

cache

已用的cache大小,文件系统的cache

inact

非活跃内存大小,即被标明可回收的内存,区别于free和active

具体含义见:概念补充(当使用-a选项时显示)

active

活跃的内存大小

具体含义见:概念补充(当使用-a选项时显示)

Swap

si

每秒从交换区写入内存的大小(单位:kb/s)

so

每秒从内存写到交换区的大小

IO

bi

每秒读取的块数(读磁盘)

现在的Linux版本块的大小为1024bytes

bo

每秒写入的块数(写磁盘)

system

in

每秒中断数,包括时钟中断

这两个值越大,会看到由内核消耗的cpu时间会越多

cs

每秒上下文切换数

CPU(以百分比表示)

Us

用户进程执行消耗cpu时间(user time)

us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期超过50%的使用,那么我们就该考虑优化程序算法或其他措施了

Sy

系统进程消耗cpu时间(system time)

sys的值过高时,说明系统内核消耗的cpu资源多,这个不是良性的表现,我们应该检查原因。

Id

空闲时间(包括IO等待时间)

wa

等待IO时间

Wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。

sar

命令说明

是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等,sar命令有sysstat安装包安装,

语法格式

   sar [ 选项 ] [ <时间间隔> [ <次数> ] ]

1.查看cpu使用情况 sar -u

sar -u 1 3

%user     用户空间的CPU使用
%nice     改变过优先级的进程的CPU使用率
%system   内核空间的CPU使用率
%iowait   CPU等待IO的百分比 
%steal    虚拟机的虚拟机CPU使用的CPU
%idle     空闲的CPU

在以上的显示当中,主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求,如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈。  

2.查看平均负载  sar -q
sar -q 1 3

runq-sz    运行队列的长度(等待运行的进程数,每核的CP不能超过3个)
plist-sz   进程列表中的进程(processes)和线程数(threads)的数量
ldavg-1    最后1分钟的CPU平均负载,即将多核CPU过去一分钟的负载相加再除以核心数得出的平均值,5分钟和15分钟以此类推
ldavg-5    最后5分钟的CPU平均负载
ldavg-15   最后15分钟的CPU平均负载

3.查看内存使用情况  sar -r
sar -r 1 3

kbmemfree  空闲的物理内存大小
kbmemused  使用中的物理内存大小
%memused   物理内存使用率
kbbuffers  内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache. 
kbcached   缓存的文件大小
kbcommit   保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)
commit     这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值

4.查看磁盘IO和传递速率  sar -b
sar -b 1 3

tps      磁盘每秒钟的IO总数,等于iostat中的tps
rtps     每秒钟从磁盘读取的IO总数
wtps     每秒钟从写入到磁盘的IO总数
bread/s  每秒钟从磁盘读取的块总数
bwrtn/s  每秒钟此写入到磁盘的块总数

5.查看磁盘使用情况  sar -d
sar -d -p 1 3

DEV       磁盘设备的名称,如果不加-p,会显示dev253-0类似的设备名称,因此加上-p显示的名称更直接
tps       每秒I/O的传输总数
rd_sec/s  每秒读取的扇区的总数
wr_sec/s  每秒写入的扇区的总数
avgrq-sz  平均每次次磁盘I/O操作的数据大小(扇区)
avgqu-sz  磁盘请求队列的平均长度
await     从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒等于1000毫秒),等于寻道时间+队列时间+服务时间
svctm     I/O的服务处理时间,即不包括请求队列中的时间
%util     I/O请求占用的CPU百分比,值越高,说明I/O越慢

6.网络接口信息 sar -n DEV
sar -n DEV 1 1

IFACE     本地网卡接口的名称
rxpck/s   每秒钟接受的数据包
txpck/s   每秒钟发送的数据库
rxKB/S    每秒钟接受的数据包大小,单位为KB
txKB/S    每秒钟发送的数据包大小,单位为KB
rxcmp/s   每秒钟接受的压缩数据包
txcmp/s   每秒钟发送的压缩包
rxmcst/s  每秒钟接收的多播数据包    

7.网络设备通信失败信息 sar -n EDVE
sar -n EDEV 1 1

IFACE     网卡名称
rxerr/s   每秒钟接收到的损坏的数据包
txerr/s   每秒钟发送的数据包错误数
coll/s    当发送数据包时候,每秒钟发生的冲撞(collisions)数,这个是在半双工模式下才有
rxdrop/s  当由于缓冲区满的时候,网卡设备接收端每秒钟丢掉的网络包的数目
txdrop/s  当由于缓冲区满的时候,网络设备发送端每秒钟丢掉的网络包的数目
txcarr/s  当发送数据包的时候,每秒钟载波错误发生的次数
rxfram/s  在接收数据包的时候,每秒钟发生的帧对其错误的次数
rxfifo/s  在接收数据包的时候,每秒钟缓冲区溢出的错误发生的次数
txfifo/s  在发生数据包 的时候,每秒钟缓冲区溢出的错误发生的次数

8.统计socket连接信息  sar -n SOCK
sar -n SOCK 1 1

totsck   当前被使用的socket总数
tcpsck   当前正在被使用的TCP的socket总数
udpsck   当前正在被使用的UDP的socket总数
rawsck   当前正在被使用于RAW的skcket总数
if-frag  当前的IP分片的数目
tcp-tw   TCP套接字中处于TIME-WAIT状态的连接数量


9.TCP连接的统计  sar -n TCP 
sar -n TCP 1 1

active/s  新的主动连接
passive/s  新的被动连接
iseg/s  接受的段
oseg/s  输出的段

参考:

Linux iostat命令详解 - 小a玖拾柒 - 博客园

Vmstat命令详解 - 李占卫 - 博客园

linux 性能监控 sar命令_liyongbing1122的博客-CSDN博客_linux sar

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cloud孙文波

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值