专栏首页DBA随笔Linux之sar命令

Linux之sar命令

Linux之sar命令
01

sar命令简介

Linux中的sar命令是系统运行状态的统计命令,他讲指定的操作系统状态显示到标准的输出设备中,它的全称是system activity reporter,它可以从多个方面对系统的活动进行报告,包括但不限于:系统磁盘的io状况,cpu当前的效率值,内存使用的情况,进程活动以及文件读写情况等。

常用格式和参数

02

sar (命令选项)(相关参数)

-A:显示所有的报告信息; -b:显示I/O速率; -B:显示换页状态; -c:显示进程创建活动; -d:显示每个块设备的状态; -e:设置显示报告的结束时间; -f:从指定文件提取报告; -i:设状态信息刷新的间隔时间; -P:报告每个CPU的状态; -R:显示内存状态; -u:显示CPU利用率; -v:显示索引节点,文件和其他内核表的状态; -w:显示交换分区状态; -x:显示给定进程的状态。

-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。

03

实际应用

“纸上得来终觉浅,绝知此事要躬行”,这里通过一系列的操作来了解这个命令:

1.查看内存和交换空间的使用率

[root@localhost yeyz]# sar -r
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain)     年月日     _x86_64_    ( CPU)

时分秒       LINUX RESTART

时分秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
时分秒             51.52                  30.54
时分秒             51.54                  30.54
时分秒             51.55                  30.54
时分秒             51.55                  30.54
时分秒             51.60                  30.56

上面的结果中,kbmemfree与kbmemused字段分别显示内存的未使用与已使用空间,后面跟着的是已使用空间的百分比(%memused字段)。kbbuffers与kbcached字段分别显示缓冲区与系统全域的数据存取量,单位为KB,#commit 这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值

2.查看cpu资源监控,最后的两个数字代表,每10s采样一次,总共采样1次

[root dba_mysql]# sar -u -o test  
Linux 2.6.32-642.6.2.el6.x86_64 (hb30-dba-mysql-master-124-44)     //  _x86_64_    ( CPU)

:: PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
:: PM     all      3.70      0.01      3.56      3.50      0.00     89.22
Average:        all      3.70      0.01      3.56      3.50      0.00     89.22

上面的信息每个列的描述如下:

CPU:all 表示统计信息为所有 CPU 的平均值。 %user:显示在用户级别(application)运行使用 CPU 总时间的百分比。 %nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。 %system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。 %iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。 %steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。 %idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。

3.内存分页监控

sar -B 10 1  后面两个参数表示每10s采样一次,总共采样1次
[root dba_mysql]# sar -B  
Linux 2.6.32-642.6.2.el6.x86_64 (hb30-dba-mysql-master-124-44)     //  _x86_64_    ( CPU)

:: PM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
:: PM     35.90  51765.81    312.82      0.00    992.41    615.38      0.00    615.17     99.97
Average:        35.90  51765.81    312.82      0.00    992.41    615.38      0.00    615.17     99.97

上图中的输出结果描述如下: pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB) pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB) fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor) majflt/s:每秒钟产生的主缺页数. pgfree/s:每秒被放入空闲队列中的页个数 pgscank/s:每秒被kswapd扫描的页个数 pgscand/s:每秒直接被扫描的页个数 pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数 %vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比

4.IO和传送速率监控

sar -b 10 3该命令表示每10s采样一次,连续采样3次,结果如下:

[root dba_mysql]# sar -b  
Linux 2.6.32-642.6.2.el6.x86_64 (hb30-dba-mysql-master-124-44)     //  _x86_64_    ( CPU)

:: PM       tps      rtps      wtps   bread/s   bwrtn/s
:: PM  19905.58      6.21  19899.37    138.11 195967.16
:: PM  19625.40      3.16  19622.23    101.16 192708.11
:: PM  20463.72      4.47  20459.26    142.98 203368.51
Average:     19996.72      4.61  19992.11    127.37 197328.36

tps:每秒钟物理设备的 I/O 传输总量 rtps:每秒钟从物理设备读入的数据总量 wtps:每秒钟向物理设备写入的数据总量 bread/s:每秒从物理设备读入的数据量,单位为块/s bwrtn/s:每秒向物理设备写入的数据量,单位为块/s

5.设备使用情况监控

sar -d 10 3 –p
[root dba_mysql]# sar -d   -p
Linux 2.6.32-642.6.2.el6.x86_64 (hb30-dba-mysql-master-124-44)     //  _x86_64_    ( CPU)

:: PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
:: PM       sdb   6422.96     44.02  82649.74     12.87      0.37      0.06      0.05     33.58
:: PM       sda      1.27     36.40      5.93     33.33      0.00      0.00      0.00      0.00
:: PM data-main  11822.65     54.18 100249.74      8.48      0.70      0.06      0.03     40.81
:: PM       sdc   1719.47     10.16  17600.00     10.24      0.11      0.07      0.06     10.73

:: PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
:: PM       sdb   6530.57     67.94  83672.19     12.82      0.37      0.06      0.05     33.66
:: PM       sda      2.02      0.00     22.08     10.95      0.00      0.32      0.16      0.03
:: PM data-main  12019.64     67.94  99746.07      8.30      0.72      0.06      0.03     41.25
:: PM       sdc   1747.13      0.00  16072.19      9.20      0.11      0.06      0.06     10.57

:: PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
:: PM       sdb   6149.74    111.55  78426.64     12.77      0.41      0.07      0.06     37.62
:: PM       sda      0.31      0.00      4.16     13.33      0.00      1.00      1.00      0.03
:: PM data-main  11301.77    111.55  93956.30      8.32      0.74      0.07      0.04     45.05
:: PM       sdc   1661.50      0.00  15531.32      9.35      0.12      0.07      0.07     11.12

Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:          sdb   6366.36     74.72  81562.92     12.82      0.38      0.06      0.05     34.97
Average:          sda      1.19     12.08     10.67     19.06      0.00      0.26      0.18      0.02
Average:    data-main  11712.04     78.09  97959.55      8.37      0.72      0.06      0.04     42.39
Average:          sdc   1709.06      3.37  16396.63      9.60      0.11      0.07      0.06     10.81

该结果的说明如下:

参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0 tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的. rd_sec/s:每秒读扇区的次数. wr_sec/s:每秒写扇区的次数. avgrq-sz:平均每次设备I/O操作的数据大小(扇区). avgqu-sz:磁盘请求队列的平均长度. await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒). svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间. %util:I/O请求占CPU的百分比,比率越大,说明越饱和 1. avgqu-sz 的值较低时,设备的利用率较高。 2. 当%util的值接近 1% 时,表示设备带宽已经占满

当然,除了这些,sar命令匹配的参数还有很多,就像上面的参数介绍一样,其他参数大家可以手动去试试,都会输出采样的结果。一般来讲,内存情况和磁盘IO以及cpu情况的查询比较多,重点连接这三个指标即可。

本文分享自微信公众号 - DBA随笔(gh_acc2bbc0d447),作者:AsiaYe

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux命令之mpstat

    这两天疫情还在高峰期,确诊的病例依旧增多,本来想着坐火车来北京的,但是鉴于北京的确诊病例比较多,最终还是自驾13个小时来北京了,"进京难,难于上青天",...

    AsiaYe
  • MySQL Update语句是怎么执行的?

    最近在极客时间看丁奇大佬的《MySQL45讲》,真心觉得讲的不错,把其中获得的一些MySQL方向的经验整理整理分享给大家,有兴趣同学可以购买相关课程进行学习。

    AsiaYe
  • MySQL全文索引的概念

    今天下午下班去吃饭,吃完饭坐电梯上三楼,竟然被困在电梯里面了,当时的感觉还是很刺激的,电梯上升着,突然就掉下来了,像跳楼机一样,突出一个刺激,索性只掉了...

    AsiaYe
  • Element ui 表格不对齐的解决方法

    第二种情况:有垂直滚动条也有水平滚动条,特别是水平滚动条拖动到右边时,表格不对齐更明显

    tianyawhl
  • 用神经模块网络学习推理

    (与 Ronghang Hu, Marcus Rohrbach, Trevor Darrell, Dan Klein and Kate Saenko合作)

    人工智能资讯小编
  • 为什么编程那么难?是我脑子不行吗?

     “现在,导航到那个你希望程序在终端中打开的小文件夹。好的,下面需要在PATH文件夹中创建符号链接,但是,在我们创建之前,先使用nano ~/.bash_pro...

    用户1667431
  • 自制分布式漏洞扫描工具

    1.前言 在渗透测试和安全扫描工作中,发现越来越多站点部署了应用防护系统或异常流量监控系统,其中包括:WEB应用防火墙(软件WAF、硬件WAF、云WAF)、入侵...

    FB客服
  • .Net语言 APP开发平台——Smobiler学习日志:快速在手机上实现日历功能

    Amanda.li
  • 一道一线大厂面试题引发的思考

    晚上10点,你拖着疲惫的身子准备打卡下班,突然钉钉群报警,你负责的项目线上出问题了,你心理一慌,什么鬼?

    还是牛6504957
  • OpenStack集群部署—基础服务

    配置MariaDB Galera Cluster 1.mariadb第一个节点进行初始化(192.168.182.131)

    院长技术

扫码关注云+社区

领取腾讯云代金券