Linux系统性能监控命令系列之 sar
大家好,我是Sean
在使用我们碰到问题可谓是五花八门,系统卡顿、死机、宕机、I/O出现瓶颈等等,这时,我们应该考虑使用系统给我们提供的sar命令来对系统作一个了解,该命令是系统维护的重要工具,主要帮助我们掌握系统资源的使用情况,特别是内存和CPU 的使用情况。
sar(系统运行状态统计工具)
在使用我们碰到问题可谓是五花八门,系统卡顿、死机、宕机、I/O出现瓶颈等等,这时,我们应该考虑使用系统给我们提供的sar命令来对系统作一个了解,该命令是系统维护的重要工具,主要帮助我们掌握系统资源的使用情况,特别是内存和CPU 的使用情况。
sar命令 是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。
启动命令参数
-A:显示所有的报告信息;
-b:显示I/O速率;
-B:显示换页状态;
-c:显示进程创建活动;
-d:显示每个块设备的状态;
-e:设置显示报告的结束时间;
-f:从指定文件提取报告;
-i:设状态信息刷新的间隔时间;
-P:报告每个CPU的状态;
-R:显示内存状态;
-u:显示CPU利用率;
-v:显示索引节点,文件和其他内核表的状态;
-w:显示交换分区状态;
-x:显示给定进程的状态。
常用命令
查看CPU使用情况
sar 1 3 或 sar -u 1 3
每1秒打印一次cpu状况,打印3次后退出
将cpu统计结果保存到文件
sar -o test 1 3
每1秒打印一次cpu状况,打印3次后退出,并保存到文件test
sar -f test
查看保存到test文件的cpu记录
查看平均负载
sar -q 1 3
查看系统swap分区统计情况
sar -W 1 3
查看IO和传递速率
sar -b 1 3
查看磁盘使用情况
sar -d
统计网络信息
sar -n DEV
sar -n EDEV
统计socket连接信息
sar -n SOCK
TCP连接的统计
sar -n TCP
查看内存使用情况
sar -r 1 3
命令详解
查看CPU使用情况
sar 1 3 或 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是否瓶颈
sar还可以把CPU使用情况记录成二进制文件,并可以重新读取:
生成文件:sar -o test 1 3
查看文件:sar -f test
查看平均负载
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平均负载
查看内存使用情况
sar -r 1 3
kbmemfree 空闲的物理内存大小
kbmemused 使用中的物理内存大小
%memused 物理内存使用率
kbbuffers 内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcached 缓存的文件大小
kbcommit 保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)
commit 这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值
kbactive
kbinact
kbdirty
查看系统swap分区统计情况
sar -W 1 3
pswpin/s 每秒从交换分区到系统的交换页面(swap page)数量
pswpott/s 每秒从系统交换到swap的交换页面(swap page)的数量
查看IO和传递速率
sar -b 1 3
tps 磁盘每秒钟的IO总数,等于iostat中的tps
rtps 每秒钟从磁盘读取的IO总数
wtps 每秒钟从写入到磁盘的IO总数
bread/s 每秒钟从磁盘读取的块总数
bwrtn/s 每秒钟此写入到磁盘的块总数
查看磁盘使用情况
sar -d
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越慢
统计网络信息
sar -n 参数
sar -n DEV
sar -n EDEV 1 1
sar -n SOCK
参数 | 含义 |
---|---|
DEV | 网络接口统计信息 |
EDEV | 网络接口错误 |
NFS | NFS 客户端 |
NFSD | NFS 服务器 |
SOCK | 套接字 |
IP | IP流 |
EIP | IP流错误 |
ICMP | ICMP流 |
EICMP | ICMP流错误 |
TCP | TCP流 |
ETCP | TCP流错误 |
UDP | UDP流 |
SOCK6 | 套接字 |
IP6 | IP流 |
EIP6 | IP流错误 |
ICMP6 | ICMP流 |
EICMP6 | ICMP流错误 |
UDP6 | UDP流 |
今天的分享就到这里啦!感谢各位的阅读!码字不易,如果本文对你有帮助的话,帮忙点个赞吧~哈哈。