运维入门必备Linux sar命令

1. 小声哔哔

    执行sar --help查看sar命令的可用参数如下:


    主要使用格式是:sar [ options ] [ <interval> [ <count> ] ]
    执行命令man sar可以查看命令的详细使用方法及输出结果的含义
    options是具体操作参数,interval是可选参数,代表统计间隔,count也是可选参数,代表总的统计次数
    sar命令极其强大,是对Linux当前使用状态分析的利器,下面介绍几个在日常运维排查过程中常用的命令

2. sar -u CPU使用情况报告

  • 示例:sar -u 查看全天CPU使用情况
  • 示例:sar -u 1 10 每秒输出一次CPU使用情况,输出10次

user在用户级别(应用程序)执行时发生的CPU利用率百分比。请注意,此字段包括运行虚拟处理器所花费的时间
nice在优先级较高的用户级别执行时发生的CPU利用率百分比
system在系统级别(内核)执行时发生的CPU利用率百分比。请注意,此字段包括用于服务硬件和软件中断的时间
iowait在系统有未完成的磁盘I/O请求的过程中,一个或多个CPU空闲的时间百分比
steal虚拟机管理程序为另一个虚拟处理器提供服务时,一个或多个虚拟CPU在非自愿等待中花费的时间百分比
idle一个或多个CPU空闲且系统没有未完成的磁盘I/O请求的时间百分比
  •  运维总结:日常运维时,首先要关注%idle,CPU空闲百分比低代表有进程占用CPU,可以通过top命令查看CPU占用率比较高的服务,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,需要另行分析是不是需要加大内存。第二个需要关注的值是%iowait,若值过高有可能是硬盘存在IO瓶颈。
  • 查看每颗CPU的使用情况:sar -P (ALL|指定CPU) 【统计间隔】 【统计次数】

       示例:sar -P ALL 1 3(统计全部CPU使用情况,统计间隔一秒,总共统计3次)

3. sar -q 获取CPU负载报告

  • 示例:每三秒输出一次CPU负载报告,输出5次
  • 命令:sar -q 3 5

runq-sz运行队列的长度(等待运行的进程数,每核的CP不能超过3个)
plist-sz进程列表中的进程(processes)和线程数(threads)的数量
ldavg-1最后一分钟的平均系统负载。平均负载计算为可运行或正在运行的任务(R状态)的平均数,以及指定间隔内处于不间断睡眠(D状态)的任务数
ldavg-5最后五分钟的CPU平均负载
ldavg-15最后十五分钟的CPU平均负载
blocked当前阻止的任务数,等待I/O完成
  • 运维总结:这个参数与top命令头部展示的内容很像,几个参数都是CPU负载关键参数,值得参考

4. sar -r 机器内存使用情况报告

  • 示例:每三秒输出一次机器内存使用情况报告,输出5次
  • 命令:sar -r 3 5

kbmemfree可用内存量(以千字节为单位)
kbmemused已用内存量(以千字节为单位),包括buffer和cache的使用空间
memused已使用内存空间大小kbmemused值占内存总量(不包括swap)百分比
kbbuffers内核用作buffer区的内存量(以千字节为单位)
kbcached内核用作cache区的内存量(以千字节为单位)
kbcommit当前工作负载所需的内存量(以千字节为单位)。这是估计需要多少RAM+swap以保证永远不会有内存不足的估计
commit当前工作负载所需的内存占内存总量(RAM + swap)的百分比。此数字可能大于100%,因为内核通常会过量使用内存
kbactive活跃的内存大小(单位:KB,最近使用的内存,通常不会被收回,除非绝对必要)
kbinact不活跃的内存量大小(单位:KB,最近使用的内存,更有资格被用于其他目的)
kbdirty等待写入磁盘的内存量(单位:KB)

   Linux的Buffer和Cache学习链接

  • 运维总结:日常运维关注最多的可能是%memused,若内存使用占比过高需要对内存进行纵向扩容

5. sar -d -p linux磁盘IO使用情况报告

  • 示例:每三秒输出一次机器磁盘使用情况报告,输出5次
  • 命令:sar -d -p 3 5

tps指示每秒向设备发出的传输数。多个逻辑请求可以组合为一个I/O请求。传输的大小不确定
rd_sec/s每秒从磁盘读取的扇区数。扇区的大小为512字节
wr_sec/s每秒写入磁盘的扇区数。扇区大小为512字节
avgrq-sz向磁盘发出的请求的平均大小(以扇区为单位)
avgqu-sz向磁盘发出的请求的平均队列长度
await从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括排队和服务时间。单位是毫秒
svctm系统处理每次请求的平均时间,不包括在请求队列中消耗的时间(通过man sar查看文档发现该参数已经是不可信的了,将来会被移除)
util向磁盘发出I/O请求所用的时间百分比(设备的带宽利用率),比率越大,说明越饱和
  • 运维总结: 根据参数定义,首先需要关注的是%util,其次是avgqu-sz(请求队列长度)和await(处理时间),若该值持续很高有可能有性能瓶颈,考虑SSD盘吧

6. sar -n 机器网络使用信息报告

   -n选项使用6个不同的开关:DEV | EDEV | NFS | NFSD | SOCK| ALL
   DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动的NFS客户端的信息,NFSD统计NFS服务器的信息,SOCK显示套接字信息,ALL显示所有5个开关。它们可以单独或者一起使用。

  • 示例:每三秒输出一次网卡使用情况报告,输出5次
  • 命令:sar -n DEV 3 5

IFACE报告其统计信息的网络接口的名称
rxpck/s每秒接收的数据包总数
txpck/s每秒传输的数据包总数
rxkB/s每秒接收的千字节总数
txkB/s每秒传输的千字节总数
rxcmp/s每秒接收的压缩数据包数量(用于cslip等)
txcmp/s每秒传输的压缩数据包数
rxmcst/s每秒收到的组播数据包数

7. 将报告以二进制文件输出

  • 示例:使用-o [filename]以二进制文件输出cpu使用情况sar -u -o [filename] 1 10
  • 命令:sar -u -o cpu 1 10

  • 使用sar -f [filename]查看二进制文件内容,命令:sar -f cpu

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值