Linux sar命令介绍

0    981    8

Tags:

👉 本文共约4145个字,系统预计阅读时间或需16分钟。

简介

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

常用用法

sar [command] 2 5 : 每2秒输出一次sar [command],总计输入五次,省略5表示持续输出

sar -n DEV 1 -e 22:26:00 >/tmp/123 &:每秒采样一次网络情况直到22:26并把采样数据输出到/tmp/123

sar -f /var/log/sa/sa27 -s 23:00:00 -e 00:00:00 -r:本月27日23点至0点的内存数据,需要通过crontab设置定时任务

CPU篇

-p

-P {CPU_LIST | ALL}:用于分析多核CPU的性能状况,可以使用CPU_LIST分析指定核心的CPU状态,可以使用离散值和连续值,也可以使用ALL分析所有CPU核心状态。

表示每秒采集0号CPU状态,总共采样3次。

前两列不必多言,%user指运行非特权用户进程时间百分率

%nice是指运行特权用户进程时间百分率

%system是指运行内核进程时间,这个时间包括了CPU处理软硬中断的时间

%iowait是指等待I/O完成的时间

%steal是指运行虚拟机的时间百分率,steal意味着被偷走的时间

%idle是指cpu空闲时间百分率,我的机器上并未运行任何程序,所以此列一直为100%

-u

-u[ALL]:报告cpu使用情况,与-p不同的是,-u只能报告所有cpu。ALL选项输出详细信息

这里的%usr和-P的%user的区别在于%usr不包括虚拟机运行的时间

这里的%sys和-P的%system的区别在于%sys不包括各种软硬中断时间

%irq是指处理硬中断的cpu时间百分率

%soft是指处理软中断的cpu时间百分率

%guest%gnice分别指运行普通虚拟程序和特权虚拟程序的时间百分率

-q

-q:用于报告队列长度以及平均负载

runq-sz:等待cpu调度的任务数

plist-sz :处于任务列表的任务总数

ldavg-1ldavg-5ldavg-15分别指1分钟,5分钟,15分钟内cpu的负载

blocked:表示等待I/O完成而被阻塞的任务总数,不为0则需要留意I/O是否存在性能瓶颈

-w

-w:报告进程上下文切换的次数

proc/s:指每秒创建的进程数

cswch/s:指每秒自愿上下文切换的次数,是指进程无法获取所需资源,导致的上下文切换。比如说, I/O、内存等系统资源不足时,就会发生自愿上下文切换。

还有一个非自愿的上下文切换次数nvcswch/s表示则是指进程由于时间片已到等原因,被系统强制调度,进而发生的上下文切换。非自愿次数明显升高意味着cpu产生了性能瓶颈。非自愿上下文切换可以使用pidstat加上-w选项来输出

内存篇

-r

-r [-h]:输出内存使用率统计信息

kbmemfree:剩余内存总量

kbavail:可用内存总量,可用内存≈剩余内存+buffer+cache

kbmemused:使用的内存总量,使用量=总内存-剩余内存-buffer-cache-slab

kbbuffers:被内核用来作为buffer的内存量

kbcached:被内核用来作为cache的内存量

kbcommit:当前工作负载下,可以保证不出现内存不足的内存量

%commit:指kbcommit占内存/swap的百分率

kbactive:当前活跃内存量。除非万不得已,这部分内存才会被回收

kbinact:当前非活跃内存总量,当内存不足时,这部分内存最容易被内核收回

kbdirty:脏页大小,脏页指的是暂存于内存还没来得及持久化到硬盘的数据。可以使用sync刷入硬盘

-B

-B:报告系统中分页统计信息

pgpgin/s:表示每秒从磁盘中换入内存的字节数

pgpgout/s:表示每秒从内存换出到磁盘的字节数

fault/s:表示系统每秒产生的缺页异常(报告主缺页和次缺页),这不是产生I/O的缺页中断的次数,因为部分缺页中断不需要I/O就能处理

majflt/s:表示每秒产生的主缺页异常

pgfree/s:每秒被系统放到空闲列表的分页数量

pgscank/s:每秒被内核线程[kswapd]扫描的分页数量

pgscand/s:每秒被直接扫描的数量

pgsteal/s:系统为满足其内存需求声明每秒从cache(分页缓存和swap缓存)回收的页的数量

%vmeff:这个指标由pgsteal/(pgscand+pgscank)得到,这是一个衡量页面回收效率的指标

-S

-s [h]:输出swap空间的使用率统计信息

我的这台机器上未开启swap,所有的统计信息均为0

kbswpfree:未使用的swap量

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

kbswpused:使用中的swap内存量

%swpused:使用中的swap内存量占总swap的百分率

kbswpcad:被swap缓存的内存量,这部分内存曾经被换出,现在又被换入但仍然位于swap空间

%swpcad:kbswpcad占kbswpused的百分率

-W

-W统计输出swap换入换出信息

pswpin/s:每秒换入swap的内存量

pswpout/s:每秒换出swap的内存量

若这两项数值很高,表示内存短缺导致需要频繁换入换出。

I/O篇

-b

-b:报告I/O及传输速率统计信息

tps:每秒钟加到物理设备上的传输总量。一次传输就是加到物理设备的一次I/O请求,由于多次逻辑请求可以合并为单次的I/O请求,所以一次传输的大小是不确定的

rtps:每秒加到物理设备的读请求总数

wtps:每秒加到物理设备上的写请求总数

dtps:每秒丢弃的请求总数

bread/s:以块为单位每秒钟从磁盘读取的数据总量,块的大小等同于一个扇区的大小,512字节

bwrtn/s:以块为单位每秒钟写入磁盘的数据总量

bdscd/s以块为单位丢弃的数据总量

-d

-d -h[--dev=dev_list]:报告块设备的活动情况

tps:和-btps含义一样,都表示每秒钟加到物理设备上的传输总量

rkB/s:每秒从设备读到的字节数

wkB/s:每秒写入设备的字节数

areq-sz:加到设备上I/O请求平均大小(以字节为大小)

aqu-sz:加到设备上请求长度的平均值

await:加到设备上I/O请求的平均响应时间,这个时间包括了请求处于等待队列中的时间

%util:加到设备上I/O请求所用的时间百分比,对于串行设备,接近100%意味着设备出现了性能瓶颈,但是对于并行设备比如RAID或者SSD,这个值实际上并不能反映出设备的极限

-v

-v:报告inode,文件以及其他内核表状态

dentunusd:目录缓存中未使用的缓存项数。

file-nr:系统使用的文件句柄数,查看目前使用的文件句柄数lsof|awk '{print $2}'|wc -l

inode-nr:系统使用的inode处理程序数

pty-nr:打开的伪终端数,即几个人登陆了系统

网络篇

-n

IFACE:网络接口

rxpck/s:每秒接收的报文数

txpck/s:每秒发送的报文数

rxkB/s:每秒接收的字节数,`rxkB/s*1024/rxpck/s<60B,意味着收到的是小包

txkB/s:每秒发送的字节数

rxcmp/s:每秒接收的压缩数据包数

txcmp/s:每秒发送的压缩数据包数

rxmcst/s:每秒接收的多播数据包数

%ifutil:网络接口的利用率百分比,对于半双工接口,利用率使用rxkB/stxkB/s之和作为接口速度的百分比计算。对于全双工,这是rxkB/stxkB/s中的较大值。

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部