[转帖]linux性能检测之sar详解

linux,性能,检测,sar,详解 · 浏览次数 : 0

小编点评

#sar -w 2 2 #Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) # 2017年03月23日 # _x86_64_ # 2017年03月23日 # _x86_64_ # (12 CPU)17时11分54秒 # proc/s : 每秒创建的任务总数 # cswch/s : 每秒上下文切换的总数 # TTY& rcvin/s : TTY设备活动 # xmtin/s framerr/s prtyerr/s : XMT设备活动 # brk/s : 每秒断裂次数 # ovrun/s : 每秒溢出错误数量 # 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 # 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 # 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 # 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 # 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

正文

http://blog.51niux.com/?id=99

 

sar也是sysstat中的一员。

一、介绍

1.1 简介

    sar是一个优秀的一般性能监视工具,它可以输出Linux所完成的几乎所有工作的数据。sar命令在sysetat rpm中提供。

    sar可以显示CPU、运行队列、磁盘I/O、分页(交换区)、内存、CPU中断、网络等性能数据。最重要的sar功能是创建数据文件。每一个Linux系统都应该通过cron工作收集sar数据。该sar数据文件为系统管理员提供历史性能信息。这个功能非常重要,它将sar和其他性能工具区分开。

     sar具有两种功能,第一种功能就是累计统计,周期地记录当时的信息。第二种功能就是可以实时的查看现在的性能指标信息。

     为了实现 sar 的累计统计,系统必须周期地记录当时的信息,这是通过调用 /usr/lib/sa/ 中的三个工具实现的:

     sa1 :收集并存储每天系统动态信息到一个二进制的文件中,用作 sadc 的前端程序

     sa2 :收集每天的系统活跃信息写入总结性的报告,用作 sar 的前端程序

     sadc :系统动态数据收集工具,收集的数据被写入一个二进制的文件中,它被用作 sar 工具的后端

     #cat /etc/cron.d/sysstat  #三个定时任务将收集的信息写入到/var/log/sa/目录下面以sa日期的形式存储。

     Run system activity accounting tool every 10 minutes

     */10 * * * * root /usr/lib64/sa/sa1 1 1  #默认sar采集系统性能数据的间隔为10分钟,这个粒度太粗,需要修改为1分钟。

     0 * * * * root /usr/lib64/sa/sa1 600 6 &

    # Generate a daily summary of process accounting at 23:53

    53 23 * * * root /usr/lib64/sa/sa2 -A   #每天的23:53分生成当天的性能数据。

   另外,文件 /var/log/sa/saDD 为二进制文件,不能使用 more、less 等文本工具查看,必须用 sar 或 sadf 命令查看。DD为当前日期。

 

1.2 格式:

sar  [  -A  ]  [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -i interval ] [ -m ] [ -p ] [ -q ] [ -r ] [ -R ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ] [ -j { ID | LABEL | PATH |

       UUID | ... } ] [ -n { keyword [,...] | ALL } ] [ -I { int [,...] | SUM | ALL | XALL } ] [ -P { cpu [,...] | ALL } ] [ -o [ filename ] | -f [ filename ] ] [ --legacy ] [ -s [ hh:mm:ss ] ] [ -e

       [ hh:mm:ss ] ] [ interval [ count ] ]

 

1.3 选项

-A : 这相当于指定-bBdqrRSuvwWy -I SUM -I XALL -n ALL -u ALL -P ALL。

-b : 报告I / O和传输速率统计。

-B : 报告分页统计.

-C : 从文件读取数据时,告诉sar显示sadc插入的注释。

-d : 输出每一个块设备的活动信息.

-e [hh:mm:ss] : 设置报告的结束时间。 默认结束时间为18:00:00。 小时必须以24小时格式提供。 当从文件读取或写入数据时,可以使用此选项(选项-f或-o)。

-f [filename] : 从filename中提取记录(由-o filename标记创建)。 filename参数的默认值是当前的每日数据文件,即/ var / log / sa / sadd文件。 -f选项是不包括-o选项。

-h : 显示一条简短的帮助信息,然后退出。

-i interval : 指定间隔时长,单位为秒.

-I {int [,...] | SUM | ALL | XALL} : 报告给定中断的统计信息。 int是中断号。 在命令行上指定多个-I int参数将查看多个独立中断。SUM表示要显示每秒接收的中断总数。 ALL关键字表示要报告前16个中断的统计信息,而XALL关键字表示将报告所有中断的统计信息,包括潜在的APIC中断源。 请注意,中断统计信息取决于sadc选项“-S INT”被收集。

-j { ID | LABEL | PATH | UUID | ... } : 显示持久的设备名称。 将此选项与选项-d配合使用。 选项ID,LABEL等指定持久名称的类型。 这些选项不限于此具有必需持久性名称的目录存在于/ dev/disk中。 如果设备没有找到持久性名称,则设备名称会打印完整. /dev/disk/目录下面有id,uuid,path三个目录。

-m { keyword [,...] | ALL }: 报告电源管理统计。 请注意,这些统计信息取决于sadc选项“-S POWER”。可能的关键字是CPU,FAN,FREQ,IN,TEMP和USB。

-n { keyword [,...] | ALL } : 报告网络统计可能的关键字是DEV,EDEV,NFS,NFSD,SOCK,IP,EIP,ICMP,EICMP,TCP,ETCP,UDP,SOCK6,IP6,EIP6,ICMP6,EICMP6和UDP6。

-o [filename] : 以二进制形式将文件保存在文件中。 每个阅读都在一个单独的记录。 filename参数的默认值是当前的日常数据文件,即/ var / log / sa / sadd文件。 -o选项不包括-f选项。 内核中可用的所有数据都保存在文件中(实际上,sar通过选项“-S ALL”调用其数据收集器sadc。

-P {cpu [,...] | 全部} : 针对指定的处理器或处理器报告每个处理器的统计信息。 指定每个单独处理器的ALL关键字报告统计信息,以及所有过程的全局信息,sors。 请注意,处理器0是第一个处理器。

-p : 显示友好设备名字,将此选项与选项-d配合使用。 默认名称打印为dev m-n,其中m和n是设备的主要和次要编号。 用于此选项将显示设备的名称(应)应显示在/ dev中。 名称映射由/etc/sysconfig/sysstat.ioconf控制。

-q : 报告队列长度和负载平均值。

-r : 报告内存利用率统计信息。

-R : 报告内存统计信息。

-s [hh:mm:ss] : 设置数据的开始时间,导致sar命令提取在指定的时间或之后的时间标记的记录。 默认开始时间为08:00:00。 时间一定是以24小时格式给出。 只有在从文件读取数据(选项-f)时,才能使用此选项。

-S : 报告交换空间利用率统计。

-t : 从日常数据文件读取数据时,表示sar应显示数据文件创建者的原始区域设置时间戳。 没有这个选项,sar命令在用户的区域设置时间内显示时间戳。

-u [ALL] : 报告CPU利用率。 ALL关键字表示应显示所有CPU字段。

-v : 报告inode,文件和其他内核表的状态。

-V : 打印版本号,然后退出。

-w : 报告任务创建和系统切换活动。

-W : 报表交换统计信息。

 

博文来自:www.51niux.com

二、示例

2.1 I/O和传送速率监控

# sar -b  #不加参数的话,默认是读取定时任务产生的日志文件,将/var/log/sa/saDD里的信息读取出来打印在屏幕上,可见输出是十分钟的间隔,都是当天的信息,一直到当前最近的时间结束。

Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain)     03/23/17     _x86_64_    (12 CPU)

00:00:01          tps      rtps      wtps   bread/s   bwrtn/s
00:10:01         3.21      0.06      3.15      1.84     13.98
#tps:发给物理设备的每秒传输总数。 传输是对物理设备的I / O请求。 多个逻辑请求可以组合成单个I / O请求到设备。 传输的大小不确定。每秒钟物理设备的 I/O 传输总量。

#rtps:发送到物理设备的每秒读取请求总数。每秒钟从物理设备读入的数据总量。

#wtps:发送到物理设备的每秒写入请求总数。每秒钟向物理设备写入的数据总量。

#bread/s:以每秒块为单位从设备读取的总数据量。 块相当于扇区,因此大小为512字节。

bwrtn/s:以每秒块为单位写入设备的总数量。

 

# sar -b 2 3  #这种就是实时输出信息,2秒钟刷新一次,输出三次。
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain)     03/23/17     _x86_64_    (12 CPU)

10:07:12          tps      rtps      wtps   bread/s   bwrtn/s
10:07:14         4.48      0.00      4.48      0.00     23.88
10:07:16         0.00      0.00      0.00      0.00      0.00
10:07:18         0.00      0.00      0.00      0.00      0.00
Average:         1.50      0.00      1.50      0.00      7.99

2.2  查询分页统计

#sar -B 
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)       2017年03月23日  _x86_64_        (32 CPU)

00时00分01秒  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
00时10分01秒     15.48    383.73   1222.21      0.00    572.28      0.00      0.00      0.00      0.00
00时20分01秒      1.52    325.47   1244.63      0.00    550.86      0.00      0.00      0.00      0.00
00时30分01秒      3.06    303.24   1227.47      0.00    546.21      0.00      0.00      0.00      0.00

#pgpgin/s:从磁盘读入系统每秒分页的总千字节数。

#pgpgout/s:每秒钟向磁盘写出的系统页面的KB总数。

#fault/s :  每秒制作的页面错误(major + minor)数量。 这不是生成I / O的页面错误的计数,因为一些页面错误可以在没有I / O的情况下解决。

#majflt/s : 系统每秒钟发生的主要故障数量,需要从磁盘加载内存页面的数量。

#pgfree/s : 由系统每秒放置在空闲列表上的页数。

#pgscank/s : kswapd守护程序每秒扫描的页数。

#pgscand/s : 每秒直接扫描的页数。

#pgsteal/s : 系统每秒从缓存(pagecache和swapcache)中回收的页数,以满足其内存需求。

#%vmeff : 计算为pgsteal / pgscan,这是页面回收效率的度量标准。 如果接近100%,几乎从非活动列表尾部的每个页面都将被收回。 如果它变得太低(例如小于30%),则虚拟存储器有一些困难。 如果在时间间隔内没有扫描页面,则该字段显示为零。

 

2.3 查看系统CPU的使用信息

# sar -C 2 3  #加不加-C 效果都是一样的。
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain)     03/23/17     _x86_64_    (12 CPU)

11:26:39        CPU     %user     %nice   %system   %iowait    %steal     %idle
11:26:41        all      0.84      0.00      0.21      0.00      0.00     98.96
11:26:43        all      0.75      0.00      0.25      0.00      0.00     99.00
11:26:45        all      0.75      0.00      0.17      0.00      0.00     99.08
Average:        all      0.78      0.00      0.21      0.00      0.00     99.01
# sar 2 3   #每2秒钟刷新一次,一共刷新三次。跟sar -u 2 3效果一样
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain)     03/23/17     _x86_64_    (12 CPU)

11:26:48        CPU     %user     %nice   %system   %iowait    %steal     %idle
11:26:50        all      0.75      0.00      0.13      0.00      0.00     99.12
11:26:52        all      0.67      0.00      0.17      0.00      0.00     99.16
11:26:54        all      0.71      0.00      0.13      0.00      0.00     99.16
Average:        all      0.71      0.00      0.14      0.00      0.00     99.15
#CPU:all 表示统计信息为所有 CPU 的平均值。
#%user:在用户级别(应用程序)执行时CPU占用率的百分比。 请注意,此字段包括运行虚拟处理器的时间。

#%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
#%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。
#%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。若 %iowait 的值过高,表示硬盘存在I/O瓶颈

#%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
#%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量。 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。

# sar -P 0  #显示编号为0的CPU的统计信息。
# sar -P ALL #显示all和每个CPU的统计信息。

# sar -u ALL 2 2  #显示CPU比较详细的信息
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain)     03/23/17     _x86_64_    (12 CPU)

16:52:15        CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest    %gnice     %idle
16:52:17        all      0.63      0.00      0.17      0.00      0.00      0.00      0.00      0.08      0.00     99.12
16:52:19        all      0.63      0.00      0.17      0.00      0.00      0.00      0.00      0.08      0.00     99.12
Average:        all      0.63      0.00      0.17      0.00      0.00      0.00      0.00      0.08      0.00     99.12

#%usr : 在用户级别(应用程序)执行时CPU占用率的百分比。 请注意,此字段不包括运行虚拟处理器的时间。

#%nice :  在优先级高的用户级别执行时CPU占用率的百分比。

# %sys:在系统级别(内核)上执行时CPU占用率的百分比。 请注意,此字段不包括维护硬件或软件中断所花费的时间。

#%iowait:CPU或CPU在系统有未完成的磁盘I / O请求期间空闲的时间百分比。

#%steal:当虚拟机管理程序为另一个虚拟处理器服务时,虚拟CPU或CPU在非自愿等待中花费的时间百分比。

#%irq:CPU或CPU用于服务硬件中断的时间百分比。

#%soft:CPU或CPU用于服务软件中断所花费的时间百分比。

#%guest:CPU或CPU运行虚拟处理器所花费的时间百分比。

#%gnice:CPU或CPU花费的时间用于运行接收客人的时间百分比。

#%idle : CPU或CPU空闲且系统没有未完成的磁盘I / O请求的时间百分比。

 

2.4 输出块设备的活动信息

#sar -d -p 2 3 #-d要配合着-p,才能可视化的显示,不然显示 dev8-0这种格式

Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

11时38分43秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
11时38分45秒       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时38分45秒       sdb    164.40   8238.74  15736.13    145.83      7.27     44.21      0.83     13.61

11时38分45秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
11时38分47秒       sda      2.31      0.00     92.49     40.00      0.00      1.75      1.75      0.40
11时38分47秒       sdb    115.61  16647.40    739.88    150.40      0.31      2.72      0.43      4.97

11时38分47秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
11时38分49秒       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时38分49秒       sdb    153.33   3880.00  19275.56    151.01     10.48     68.37      0.92     14.11

平均时间:       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
平均时间:       sda      0.74      0.00     29.41     40.00      0.00      1.75      1.75      0.13
平均时间:       sdb    145.22   9470.59  12138.24    148.80      6.12     42.15      0.76     11.03

#DEV:设备名称

#tps:指示发送到设备的每秒传输次数。多个逻辑请求可以合并到设备的单个I / O请求中。 转移是不确定的尺寸。

#rd_sec/s:从设备读取的扇区数。 扇区的大小为512字节。

#wr_sec/s:写入设备的扇区数。 扇区的大小为512字节。

#avgrq-sz:发给设备的请求的平均大小(以扇区为单位)。

#avgqu-sz:发送到设备的请求的平均队列长度。

#await:发给设备的I / O请求的平均时间(以毫秒为单位)。 这包括请求在队列中花费的时间以及为维护请求所花费的时间。

#svctm:发送到设备的I / O请求的平均服务时间(以毫秒为单位)。警告! 不要再相信这个领域了。 此字段将在未来的sysstat版本中被删除。

#%util:向设备发出I / O请求所耗费的时间百分比(设备的带宽利用率)。 当该值接近100%时说明磁盘读写将近饱和。

 

2.5 设置报告的结束时间和开始时间

# sar -s 01:00:00 -e 02:00:00  #加入我看历史状态信息就想从当天的凌晨1点到2点之间的记录,可以指定时间,不然的话会将0点到现在所有的报告打印出来。
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain)     03/23/17     _x86_64_    (12 CPU)

01:00:01        CPU     %user     %nice   %system   %iowait    %steal     %idle
01:10:01        all      0.73      0.00      0.15      0.00      0.00     99.12
01:20:01        all      0.73      0.00      0.16      0.00      0.00     99.11
01:30:02        all      0.73      0.00      0.15      0.00      0.00     99.12
01:40:01        all      0.73      0.00      0.15      0.00      0.00     99.12
01:50:01        all      0.73      0.00      0.15      0.00      0.00     99.11
Average:        all      0.73      0.00      0.15      0.00      0.00     99.12


2.6  查看其它日志的负载记录

#sar -f /var/log/sa/sa15 -e 01:00:00  #因为sar默认都是查看当天的日期嘛,而sar的日志文件又是二进制的,如果我想翻看旧的历史记录怎么办呢?比如查看本月15号的记录,就需要用到-f指定配置文件了,如果不加-e 时间的话,默认就是显示15号整天的CPU的统计信息,如果加了时间的话,就会显示到我指定时间。
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月15日  _x86_64_        (12 CPU)

00时00分02秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
00时10分01秒     all      0.95      0.00      0.89      1.08      0.00     97.08
00时20分01秒     all      0.13      0.00      0.47      0.63      0.00     98.76
00时30分01秒     all      0.14      0.00      0.41      0.65      0.00     98.80
00时40分01秒     all      0.10      0.00      0.25      0.15      0.00     99.49
00时50分01秒     all      0.10      0.00      0.30      0.24      0.00     99.36
平均时间:     all      0.28      0.00      0.47      0.55      0.00     98.70

# sar -u -o test 2 1 #可以手动的将采集的数据以二进制的形式写入到test文件中。

2.7 sar -I  中断的使用

# sar -I SUM  #如果不加多少秒刷新一次的话,因为历史记录是不记录中断的,所以会查不到内容。
Requested activities not available in file /var/log/sa/sa23

# sar -I 3,5 2 2  #这是查询中断号是3和5,每2秒刷新一次,刷新2次的信息。
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain)     03/23/17     _x86_64_    (12 CPU)

13:51:41         INTR    intr/s
13:51:43            3      0.00
13:51:43            5      0.00

13:51:43         INTR    intr/s
13:51:45            3      0.00
13:51:45            5      0.00

Average:         INTR    intr/s
Average:            3      0.00
Average:            5      0.00
#INTR : 中断号

#intr/s: 每秒的中断次数

 

# sar -I SUM 2 2  #每秒的中断总数
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain)     03/23/17     _x86_64_    (12 CPU)

13:56:00         INTR    intr/s
13:56:02          sum    438.50
13:56:04          sum    507.50
Average:          sum    473.00

 

# sar -I ALL 2 2 #显示前十六个中断号,以及中断号对应每秒的中断数

# sar -I XALL 2 2 #表示将报告所有中断的统计信息,包括潜在的APIC中断源。

 

2.8 用m进行电源管理统计(新版本10版本才有的,旧版本没有这个选项)

# sar -m ALL 1 1  #显示所有的统计信息
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain)     03/23/17     _x86_64_    (12 CPU)

14:50:29        CPU       MHz
14:50:30        all   1215.47

14:50:29       TEMP      degC     %temp               DEVICE
14:50:30          1     30.00     43.48    coretemp-isa-0000
14:50:30          2     30.00     43.48    coretemp-isa-0000
14:50:30          3     25.00     36.23    coretemp-isa-0000
14:50:30          4     24.00     34.78    coretemp-isa-0000
14:50:30          5     30.00     43.48    coretemp-isa-0000
14:50:30          6     29.00     42.03    coretemp-isa-0000
14:50:30          7     24.00     34.78    coretemp-isa-0000

14:50:29        BUS  idvendor    idprod  maxpower                manufact                                         product
14:50:30          1      8087        24         0                                                                        
14:50:30          2      8087        24         0                                                                        
14:50:30          1       424      2512         4                                                                        
14:50:30          1      1a40       101       200                                                             USB 2.0 Hub
14:50:30          1       624       248       200         no manufacturer                                  Gadget USB HUB
14:50:30          1      413c      2107       200                    Dell                         Dell USB Entry Keyboard
14:50:30          1       624       249         0                 Avocent                         Keyboard/Mouse Function

# MHz:瞬时CPU时钟频率,单位MHz。

# sar -m USB 1 1  #显示USB的统计信息
Linux 3.10.0-514.6.1.el7.x86_64 (localhost.localdomain)     03/23/17     _x86_64_    (12 CPU)

14:52:44        BUS  idvendor    idprod  maxpower                manufact                                         product
14:52:45          1      8087        24         0                                                                        
14:52:45          2      8087        24         0                                                                        
14:52:45          1       424      2512         4                                                                        
14:52:45          1      1a40       101       200                                                             USB 2.0 Hub
14:52:45          1       624       248       200         no manufacturer                                  Gadget USB HUB
14:52:45          1      413c      2107       200                    Dell                         Dell USB Entry Keyboard
14:52:45          1       624       249         0                 Avocent                         Keyboard/Mouse Function
#BUS:USB设备的根集线器号。

#idvendor:供应商ID号码(由USB组织分配)。

#idprod:产品编号(由制造商分配)。

#maxpower:器件的最大功耗(以mA表示)。

#manufact:制造商名称。

#product:产品名称。

 

博文来自:www.51niux.com

2.9 查看网络信息(总结了一部分剩下的可以看man文档)

#sar -n DEV 1 1  #使用DEV关键字,报告来自网络设备的统计信息。如果不加刷新周期为1秒,和刷新1次,就是查看历史的网络信息。

Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

15时02分46秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
15时02分47秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时02分47秒      eth0      2.04   5095.92      0.12   7232.75      0.00      0.00      0.00
15时02分47秒      eth1   2931.63   1142.86    210.94   1360.29      0.00      0.00      1.02
15时02分47秒     bond0   2933.67   6238.78    211.06   8593.04      0.00      0.00      1.02

平均时间:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:      eth0      2.04   5095.92      0.12   7232.75      0.00      0.00      0.00
平均时间:      eth1   2931.63   1142.86    210.94   1360.29      0.00      0.00      1.02
平均时间:     bond0   2933.67   6238.78    211.06   8593.04      0.00      0.00      1.02

#IFACE : 报告统计信息的网络接口名称。

#rxpck/s : 每秒接收的数据包总数。

#txpck/s : 每秒传输的报文总数。

#rxkB/s:每秒接收的千字节总数。

#txkB/s:每秒传输的总千字节数。

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

#txcmp/s:每秒传输的压缩包数。

#rxmcst/s : 每秒接收的组播数据包数。

 

#sar -n EDEV 1 1   #使用EDEV关键字,报告来自网络设备的故障(错误)的统计信息。

Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

15时12分58秒     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
15时12分59秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时12分59秒      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时12分59秒      eth1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时12分59秒     bond0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

平均时间:     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:      eth1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:     bond0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

#IFACE:报告统计信息的网络接口名称。

#rxerr/s:每秒接收的坏数据包总数。

#txerr/s:发送数据包时每秒发生的错误总数。

#coll/s:发送数据包时每秒发生的冲突数。

#rxdrop/s:由于linux缓冲区中缺少空间,每秒丢弃的接收数据包数。

#txdrop/s:由于linux缓冲区中没有空间,每秒丢弃的传输数据包数。

#txcarr/s:发送数据包时每秒发生的载波错误数。

#rxfram/s:接收到的数据包每秒发生的帧对齐错误数。

#rxfifo/s:接收到的数据包每秒发生的FIFO溢出错误数。

#txfifo/s:发送数据包每秒发生的FIFO溢出错误数。

 

#sar -n SOCK 1 1    #使用SOCK关键字,报告使用的套接字的统计信息(IPv4)。

Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

15时19分17秒    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
15时19分18秒       211       114         8         0         0       334
平均时间:       211       114         8         0         0       334

#totsck:系统使用的套接字总数。

#tcpsck:目前使用的TCP套接字数。

#udpsck:目前使用的UDP套接字数。

#rawsck : 目前使用的RAW套接字数量。

#ip-frag : 当前队列中的IP片段数。

#tcp-tw : TIME_WAIT状态下的TCP套接字数。

 

#sar -n IP 1 1    #使用IP关键字,报告IPv4网络流量统计。

Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

15时29分14秒    irec/s  fwddgm/s    idel/s     orq/s   asmrq/s   asmok/s  fragok/s fragcrt/s
15时29分15秒   4725.51      0.00   4725.51   1836.73      0.00      0.00      0.00      0.00
平均时间:   4725.51      0.00   4725.51   1836.73      0.00      0.00      0.00      0.00

#irec/s : 从每秒接口接收的输入数据报的总数,包括错误[ipInReceives]中收到的数据报。

#fwddgm/s : 每秒输入数据报的数量,这个实体不是它们的最终IP目的地,结果是尝试找到将它们转发到最终目标地址的路由。最终目的地[ipForwDatagrams]。

#idel/s :每秒成功传送给IP用户协议(包括ICMP)[ipInDelivers]的输入数据报总数。

#orq/s:在传输请求中ip本地IP用户协议(包括ICMP)每秒提供的IP数据报的总数[ipOutRequests]。 请注意,此计数器不包括任何以fwddgm/s计数的数据报。

#asmrq/s:每秒接收的IP片段的数量需要在该实体重新组合[ipReasmReqds]。

#asmok/s:IP数据报的数量每秒成功重新组合[ipReasmOKs]。

#fragok/s:在该实体每秒成功分片的IP数据报的数量[ipFragOKs]。

#fragcrt/s:由于此实体[ipFragCreates]分段导致的每秒生成的IP数据报片段数。

 

#sar -n EIP 1 1   #IPV4的错误统计信息
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

15时37分58秒 ihdrerr/s iadrerr/s iukwnpr/s   idisc/s   odisc/s   onort/s    asmf/s   fragf/s
15时37分59秒      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

#ihdrerr/s:由于其IP头中的错误,每秒丢弃的输入数据报的数量,包括错误的校验和,版本号不匹配,其他格式错误,超时时间,涵盖处理其IP选项等。[ipInHdrErrors]

#iadrerr/s:每秒丢弃的输入数据报的数量,因为其IP头的目标字段中的IP地址不是要在该实体接收的有效地址。 该计数包括无效地址(例如,0.0.0.0)和不受支持的类(例如E类)的地址。 对于不是IP路由器的实体,因此不转发数据报,此计数器包括丢弃的数据克,因为目标地址不是本地地址[ipInAddrErrors]。

#iukwnpr/s:由于未知或不受支持的协议[ipInUnknownProtos],本地寻址的数据报的数量已成功接收,但每秒丢弃。

#idisc/s:每秒输入IP数据报的数量,没有遇到任何问题,以防止其继续处理,但被丢弃(例如,由于缺乏缓冲区空间)[ipInDis-card]。 请注意,该计数器不包括在等待重新组装时丢弃的任何数据报。

#odisc/s : 每秒输出IP数据报的数量,没有遇到任何问题,以防止它们传输到目的地,但被丢弃(例如,由于缺乏缓冲区空间)[ipOutDiscards]。 请注意,如果任何此类数据包符合此(自由裁量)丢弃标准,则此计数器将包括以fwddgm / s计数的数据报。

#onort/s : 每秒丢弃的IP数据报的数量,因为没有路由可以发送到目的地[ipOutNoRoutes]。 请注意,该计数器包括符合此“无路由”标准的以fwddgm / s计数的任何数据包。 请注意,这包括主机无法路由的任何数据报,因为它的所有默认路由器都关闭。

#asmf/s : 通过IP重组算法每秒检测到的故障次数(无论什么原因:超时,错误等)[ipReasmFails]。 注意,这不一定是丢弃的IP片段的计数,因为一些算法可以通过在它们被接收时将它们组合而失去对片段数的追踪。

#fragf/s : 每秒丢弃的IP数据报的数量,因为它们需要在该实体上分段,但不能(例如因为它们的不分段标志被设置为[ipFrag-Fails]]。

 

#sar -n TCP 1 1   #使用TCP关键字,报告TCPv4网络流量统计信息。

Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

15时46分34秒  active/s passive/s    iseg/s    oseg/s
15时46分35秒      5.15     74.23   3692.78   1770.10
平均时间:      5.15     74.23   3692.78   1770.10

#active/s :  TCP连接从每秒CLOSED状态直接转换到SYN-SENT状态的次数[tcpActiveOpens]的次数。

#passive/s :  TCP连接从每秒LISTEN状态直接转换到SYN-RCVD状态的次数[tcpPassiveOpens]的次数。

#iseg/s :  每秒收到的段数,包括错误接收的段数[tcpInSegs]。 该计数包括在当前建立的连接上接收到的段。

#oseg/s : 每秒发送的段的总数,包括当前连接数,但不包含仅重新发送的八位字节[tcpOutSegs]的段数。

 

#sar -n ETCP 1 1  #使用ETCP关键字,报告有关TCPv4网络错误的统计信息。

Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

15时55分01秒  atmptf/s  estres/s retrans/s isegerr/s   orsts/s
15时55分02秒      0.00      4.30    110.75      0.00      2.15
平均时间:      0.00      4.30    110.75      0.00      2.15

#atmptf/s : 每秒TCP连接的次数已经从SYN-SENT状态或SYN-RCVD状态直接转换到CLOSED状态,加上每秒TCP连接已经直接转换到LISTEN状态的次数 SYN-RCVD状态[tcpAttemptFails]。

#estres/s : 每秒TCP连接的次数已经从ESTABLISHED状态或CLOSE-WAIT状态[tcpEstabResets]直接转换到CLOSED状态。

#retrans/s : 每秒发送的段的总数,即包含一个或多个先前发送的八位字节[tcpRetransSegs]的TCP段的数量。

#isegerr/s : 错误接收的段的总数(例如,不良TCP校验和)/秒[tcpInErrs]。

#orsts/s :  每秒发送的包含RST标志[tcpOutRsts]的TCP段数。

 

2.10 进程队列长度和平均负载状态监控

#sar -q 2 3  #每2秒刷新一次输出三次,查看进程队列长度和平均负载
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

16时19分35秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
16时19分37秒         0       388      0.70      1.17      1.18
16时19分39秒         0       388      0.70      1.17      1.18
16时19分41秒         0       388      0.70      1.17      1.18
平均时间:         0       388      0.70      1.17      1.18

#runq-sz: 运行队列的长度(等待运行的进程数)。

#plist-sz: 进程列表中进程(processes)和线程(threads)的数量。

#ldavg-1: 最后一分钟的系统负载平均值。 负载平均值计算为可运行或正在运行的任务的平均数(R状态)以及指定间隔内不间断休眠(D状态)中的任务数。

#ldavg-5: 系统负载平均为5分钟。

#ldavg-15:系统负载平均为15分钟。

#blocked:当前阻塞的任务数,等待I / O完成。

当然负载情况也可以通过下面的文件进行查看:

# cat /proc/loadavg
0.09 0.08 0.06 1/276 30896

2.11  报告内存统计以及交换分区的状态信息

#sar -R 2 3 #输出内存页面的统计信息
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

16时27分29秒   frmpg/s   bufpg/s   campg/s
16时27分31秒   1802.12      0.53  -1740.21
16时27分33秒  -1540.84      1.05   1523.04
16时27分35秒   1523.98     -5.26  -1447.37
平均时间:    556.99     -1.09   -518.15

#frmpg/s:每秒释放系统的内存页数。 负值表示系统分配的页数。 请注意,根据机器架构,页面的大小为4 kB或8 kB。

#bufpg/s :用于系统每秒缓冲区的其他内存页数。 负值表示系统使用的缓冲区页数较少。

#campg/s :  每秒高速缓存的其他内存页数。 负值表示缓存中较少的页面。

 

# sar -r 2 3  #报告内存利用率统计信息。

Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

16时27分37秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
16时27分39秒    127840   7874248     98.40    340892   5420712   3730788     22.76
16时27分41秒    143836   7858252     98.20    340880   5403784   3730788     22.76
16时27分43秒    151648   7850440     98.10    340876   5395844   3730788     22.76
平均时间:    141108   7860980     98.24    340883   5406780   3730788     22.76

#kbmemfree :  可用内存量以千字节计。这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.

#kbmemused : 已用内存量(千字节)。 这不考虑内核本身使用的内存。这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.

#%memused : 已用内存的百分比。是kbmemused处于内存总大小的百分比。

#kbbuffers : 用作内核的缓冲区的内存量(以千字节为单位)。

#kbcached : 内存使用的内存量,以千字节为单位。

#kbcommit : 当前工作负载所需的内存量(以千字节计)。 这是估计需要多少RAM /交换来保证永远不会有内存不足。

#%commit : 相对于内存总量(RAM +交换),当前工作负载所需的内存所占百分比。 这个数字可能会大于100%,因为内核通常会占用内存。

#kbactive : 活动内存量(千字节)(最近已被使用的内存,通常不会被回收,除非绝对必要)。

#kbinact:不活动内存量(以千字节计算的内存(最近使用的内存),更有资格被用于其他目的)。

#kbdirty : 以KB为单位的内存量等待写入磁盘。

 

# sar -S 2 3  #报告交换空间利用率统计。

Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

16时38分50秒 kbswpfree kbswpused  %swpused  kbswpcad   %swpcad
16时38分52秒   8355180     33420      0.40      2460      7.36
16时38分54秒   8355180     33420      0.40      2460      7.36
16时38分56秒   8355180     33420      0.40      2460      7.36
平均时间:   8355180     33420      0.40      2460      7.36

#kbswpfree : 空闲交换空间量(千字节)。

#kbswpused : 使用交换空间的量(以千字节计)。

#%swpused : 已用交换空间的百分比。

#kbswpcad : 高速缓存交换内存量,单位为千字节。 这是一旦被交换出来的内存,被交换回来,但仍然在交换区域(如果需要内存,则不需要再次交换,因为它已经在交换区域,这样可以节省I / O )。

#%swpcad : 缓存的交换内存占用交换空间的百分比。

 

#sar -W 2 2  #报告交换分区统计信息。这里一般都为0.00,如果有数了就说明内存有问题要用到swap分区了。

Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

17时07分25秒  pswpin/s pswpout/s
17时07分27秒      0.00      0.00
17时07分29秒      0.00      0.00
平均时间:      0.00      0.00

#pswpin/s:系统每秒引入的交换分区页面总数。

#pswpout/s:系统每秒引出的交换分区页面总数。

 

2.12  查看inode,文件和其他内核表的报告状态。

#sar -v 2 2 
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

17时03分15秒 dentunusd   file-nr  inode-nr    pty-nr
17时03分17秒     12635      1024     26932       211
17时03分19秒     12804      1024     27014       211
平均时间:     12720      1024     26973       211

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

#file-nr : 系统使用的文件句柄数。

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

#pty-nr:系统使用的伪终端(pty)数。

 

2.13 报告任务创建和系统切换活动

#sar -w 2 2 
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

17时11分54秒    proc/s   cswch/s
17时11分56秒      0.00   7488.30
17时11分58秒      0.00   9195.60
平均时间:      0.00   8368.56

#proc/s:每秒创建的任务总数。

#cswch/s :每秒上下文切换的总数。

 

2.14 报告TTY设备活动

#sar -y 2 2
Linux 2.6.32-358.el6.x86_64 (localhost.localdomain)      2017年03月23日  _x86_64_        (12 CPU)

17时13分52秒       TTY   rcvin/s   xmtin/s framerr/s prtyerr/s     brk/s   ovrun/s
17时13分54秒         0      0.00      0.00      0.00      0.00      0.00      0.00
17时13分54秒         1      0.00      0.00      0.00      0.00      0.00      0.00

17时13分54秒       TTY   rcvin/s   xmtin/s framerr/s prtyerr/s     brk/s   ovrun/s
17时13分56秒         0      0.00      0.00      0.00      0.00      0.00      0.00
17时13分56秒         1      0.00      0.00      0.00      0.00      0.00      0.00

平均时间:       TTY   rcvin/s   xmtin/s framerr/s prtyerr/s     brk/s   ovrun/s
平均时间:         0      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:         1      0.00      0.00      0.00      0.00      0.00      0.00

#TTY : 字符型设备编号

#rcvin/s : 当前串行线路每秒接收中断数。 串行行号在TTY列中给出。

#xmtin/s : 当前串行线路每秒发送中断数。

#framerr/s : 当前串行线路每秒帧错误数。

#prtyerr/s : 当前串行线路的每秒奇偶校验错误数。

#brk/s : 当前串行线路的每秒断裂次数。

#ovrun/s : 当前串行线路每秒溢出错误的数量。

与[转帖]linux性能检测之sar详解相似的内容:

[转帖]linux性能检测之sar详解

http://blog.51niux.com/?id=99 sar也是sysstat中的一员。 一、介绍 1.1 简介 sar是一个优秀的一般性能监视工具,它可以输出Linux所完成的几乎所有工作的数据。sar命令在sysetat rpm中提供。 sar可以显示CPU、运行队列、磁盘I/O、分页(交

【转帖】Linux性能优化(十六)——中断绑定

一、中断绑定简介 1、中断简介 计算机中,中断是一种电信号,由硬件产生并直接送到中断控制器上,再由中断控制器向CPU发送中断信号,CPU检测到信号后,中断当前工作转而处理中断信号。CPU会通知操作系统已经产生中断,操作系统就会对中断进行处理。常见的中断控制器有两种:可编程中断控制器8259A和高级可

[转帖]Linux服务器性能追踪以及服务器监控常用命令

https://www.pianshen.com/article/86181938917/ 作者:赵高欣 . Robbin http://www.drupal001.com/2012/07/linux-server-monitor/ 在网站性能优化中,我们经常要检查服务器的各种指标,以便快速找到害群

[转帖]服务器压力过大?CPU打满?我来帮你快速检查Linux服务器性能

https://cloud.tencent.com/developer/article/1879120?areaSource=&traceId= 九条指令查看Linux服务器指令 一、uptime 这个命令可以快速查看机器的负载情况。在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中

[转帖]17 种查看 Linux 物理内存的方法

17 种查看 Linux 物理内存的方法 https://linux.cn/article-10235-1.html 大多数系统管理员在遇到性能问题时会检查 CPU 和内存利用率。Linux 中有许多实用程序可以用于检查物理内存。这些命令有助于我们检查系统中存在的物理内存,还允许用户检查各种方面的内

[转帖]linux性能优化笔记之CPU篇

http://blog.trumandu.top/2019/03/02/linux%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E7%AC%94%E8%AE%B0%E4%B9%8BCPU%E7%AF%87/ cpu优化用到的命令 mpstat进程相关统计工具,cpu/io

[转帖]linux 性能分析工具 perf + FlameGraph

https://www.cnblogs.com/lausaa/p/12098716.html 常用命令: perf record -e cpu-clock -g -p $pid sleep 10 perf script -i perf.data > perf.unfold /FlameGraph-m

[转帖]Linux性能优化(四)——BCC性能监控工具

一、BCC简介 1、BCC简介 BCC是一个Python库,简化了eBPF应用的开发过程,并收集了大量性能分析相关的eBPF应用。BCC为BPF开发提供了不同的前端支持,包括Python和Lua,实现了map创建、代码编译、解析、注入等操作,使开发人员只需聚焦于用C语言开发要注入的内核代码。 BCC

[转帖]Linux性能优化(四)——BCC性能监控工具

http://www.javashuo.com/article/p-cxglhftg-nz.html 时间 2021-01-17 标签 前端 python linux ios git github 正则表达式 编程 api 缓存 栏目 Linux 繁體版 原文 https://blog.51cto.

[转帖]Linux性能优化实战 —— CPU

https://www.jianshu.com/p/2b6658ad59b3 Linux性能分析概要 1. 性能指标 linux性能指标.png 随着应用负载的增加,系统资源的使用也会升高,甚至达到极限。而性能问题的本质,就是系统资源已经达到瓶颈,但请求的处理却还不够快,无法支撑更多的请求。性能分析