sar命令

sar 是一个非常强大的性能分析工具,它可以获取系统的 cpu/等待队列/磁盘IO/内存/网络等性能指标。功能多的必然结果是选项多,应用复杂,但只要知道一些常用的选项足以。

语法

sar [options] [-o filename] [delay [count] ]

选项

-A:显示系统所有资源运行状况
-b:显示磁盘IO和tranfer速率信息,和iostat的信息一样,是总体IO统计信息
-d:显示磁盘在刷新时间间隔内的活跃情况,可以指定一个或多个设备,和-b不同的是,它显示的是单设备的IO、transfer信息。
:建议配合-p使用显示友好的设备名,否则默认显示带主次设备号的设备名
-P:显示指定的某颗或某几颗cpu的使用情况。指定方式为,-P 0,1,2,3或ALL。
-u:显示每颗cpu整体平均使用情况。-u和-P的区别通过下面的示例很容易区分。
-r:显示内存在刷新时间间隔内的使用情况
-n:显示网络运行状态。后可接DEV/NFS/NFSD/FULL等多种参数。
:DEV表示显示网路接口信息,NFS和NFSD分别表示显示NFS客户端服务端的流量信息,FULL表示显示所有信息。
-q:显示等待队列大小
-o filename:将结果存入到文件中
delay:状态刷新时间间隔
count:总共刷新几次

安装 sar

yum install sysstat

将性能收集工具的开关打开

vi /etc/default/sysstat

ENABLED="true"

启动这个工具来收集系统性能数据:

/etc/init.d/sysstat start

统计 CPU 使用情况

[root@VM_0_15_centos /]# sar -P ALL 1 2
Linux 3.10.0-957.21.3.el7.x86_64 (VM_0_15_centos) 08/23/2019 _x86_64_ (1 CPU) 01:28:19 PM CPU %user %nice %system %iowait %steal %idle
01:28:20 PM all 1.01 0.00 1.01 0.00 0.00 97.98
01:28:20 PM 0 1.01 0.00 1.01 0.00 0.00 97.98 01:28:20 PM CPU %user %nice %system %iowait %steal %idle
01:28:21 PM all 0.00 0.00 0.00 1.00 0.00 99.00
01:28:21 PM 0 0.00 0.00 0.00 1.00 0.00 99.00 Average: CPU %user %nice %system %iowait %steal %idle
Average: all 0.50 0.00 0.50 0.50 0.00 98.49
Average: 0 0.50 0.00 0.50 0.50 0.00 98.49

列说明:

* CPU all 表示统计信息为所有 CPU 的平均值。
* %user 显示在用户级别(application)运行使用 CPU 总时间的百分比。
* %nice 显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
* %system 在核心级别(kernel)运行所使用 CPU 总时间的百分比。
* %iowait 显示用于等待I/O操作占用 CPU 总时间的百分比。
* %steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
* %idle 显示 CPU 空闲时间占用 CPU 总时间的百分比。
  1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈
  2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
  3. 若 %idle 的值持续低于 10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。

统计内存使用情况

[root@VM_0_15_centos /]# sar -r 1 2
Linux 3.10.0-957.21.3.el7.x86_64 (VM_0_15_centos) 08/23/2019 _x86_64_ (1 CPU) 01:29:00 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
01:29:01 PM 172072 1710280 90.86 128960 1190316 887248 47.14 1003920 580088 308
01:29:02 PM 169052 1713300 91.02 128964 1190316 891820 47.38 1006176 580084 376
Average: 170562 1711790 90.94 128962 1190316 889534 47.26 1005048 580086 342

列说明:

kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:物理内存使用率,这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比. 可用内存 = free+buffers+cached
已用内存 = userd-buffers-cached

统计网络流量

[root@VM_0_15_centos /]# sar -n DEV 1 2
Linux 3.10.0-957.21.3.el7.x86_64 (VM_0_15_centos) 08/23/2019 _x86_64_ (1 CPU) 01:29:40 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
01:29:41 PM eth0 3.03 6.06 0.18 0.52 0.00 0.00 0.00
01:29:41 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 01:29:41 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
01:29:42 PM eth0 8.91 10.89 0.61 1.31 0.00 0.00 0.00
01:29:42 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: eth0 6.00 8.50 0.40 0.92 0.00 0.00 0.00
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00

列说明:

rxpck/s:每秒收到的包数量
txpck/s:每秒发送的包数量
rxkB/s:每秒收到的数据,单位为kb
txkB/s:每秒发送的数据,单位为kb
rxcmp/s:每秒收到的压缩后的包数量
txcmp/s:每秒发送的压缩后的包数量
rxmcst/s:每秒收到的多播包数量

查看队列情况

[root@VM_0_15_centos /]# sar -q
Linux 3.10.0-957.21.3.el7.x86_64 (VM_0_15_centos) 08/23/2019 _x86_64_ (1 CPU)

列说明:

runq-sz:等待队列的长度,不包括正在运行的进程
plist-sz:任务列表中的进程数量,即总任务数
ldavg-N:过去1分钟、5分钟、15分钟内系统的平均哎
blocked:当前因为IO等待被阻塞的任务数量

统计磁盘IO情况

[root@VM_0_15_centos /]# sar -d -p 1 2
Linux 3.10.0-957.21.3.el7.x86_64 (VM_0_15_centos) 08/23/2019 _x86_64_ (1 CPU) 01:30:44 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
01:30:45 PM vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:30:45 PM sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 01:30:45 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
01:30:46 PM vda 1.98 0.00 150.50 76.00 0.01 4.50 3.00 0.59
01:30:46 PM sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: vda 1.00 0.00 76.00 76.00 0.00 4.50 3.00 0.30
Average: sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

列说明:

tps:transfer per second,每秒的transfer速率,一次物理IO请求算一次transfer,但多次逻辑IO请求可能组合起来才算一次transfer。
rd_sec/s:每秒读取的扇区数,扇区大小为512字节。
wr_sec/s:每秒写入的扇区数。
avgrq-sz:请求写入设备的平均大小,单位为扇区。(The average size (in sectors) of the requests that were issued to the device)
avgqu-sz:请求写入设备的平均队列长度。(The average queue length of the requests that were issued to the device.)
await:写入设备的IO请求的平均(消耗)时间,单位微秒(The average time for I/O requests issued to the device to be served.)
svctm:不可信的列,该列未来将被移除,所以不用管
%util:最重要的一列,显示的是设备的带宽情况。该列若接近100%,说明磁盘速率饱和了。

Liunx学习总结(七)--系统状态查看和统计的更多相关文章

  1. linux系统状态查看/管理相关命令

    系统状态查看命令: w 查看用户 top 系统进程监控 uptime 查看某台服务器运行了多久 htop 更加先进的交互式监控工具(需要安装) iotop 监控并实时显示磁盘IO输入和输出和程序进程( ...

  2. linux进程管理和系统状态查看命令简介

    1 进程管理简介 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础 2 常用命令 2.1 pstree 2.1.1 功能描 ...

  3. Linux学习笔记(七) 查询系统

    1.查看命令 (1)man 可以使用 man 命令名称 命令查看某个命令的详细用法,其显示的内容如下: NAME:命令名称 SYNOPSIS:语法 DESCRIPTION:说明 OPTIONS:选项 ...

  4. 电脑睡眠状态(ACPI规范定义了七个状态,使用powercfg -a进行查看)

    ACPI规范定义了一台兼容ACPI的计算机系统可以有以下七个状态(所谓的全局状态): G0('S0)正常工作状态:计算机的正常工作状态-操作系统和应用程序都在运行.CPU(s)执行指令.在这个状态下( ...

  5. Linux查看系统状态命令

    Linux查看系统状态命令       iostat iostat 命令详细地显示了存储子系统方面的情况.你通常用iostat来监控存储子系统总体上运行状况如何,并且在用户注意到服务器运行缓慢之前提早 ...

  6. 查看linux系统状态

    就类似你装完xp后,或者你拿到一台新的机器的时候,你通常都是进入系统,看看他的cpu,内存,硬盘使用情况.我也按照这个来看看linux的系统状态.1:top 退出按q,这个就类似windows的任务管 ...

  7. Linux 查看系统状态

    查看系统状态 命令:vmstat 命令:vmsta 1 10               #每1秒钟1次显示10次. r:几个进程在占用cpu b:等待IO值 Swpd:多少交换内存 free:剩余内 ...

  8. linux怎样使用top命令查看系统状态

    有时候有很多问题只有在线上或者预发环境才能发现,而线上又不能Debug,所以线上问题定位就只能看日志,系统状态和Dump线程. Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分 ...

  9. Linux查看系统状态命令top

    用法 top 自动刷新系统状态,要结束使用[Ctrl]+[C] 效果图: 信息解释(转自百度经验http://jingyan.baidu.com/article/4d58d5412917cb9dd4e ...

随机推荐

  1. Modify column Vs change column

    引言 I know, we can not rename a column using modify column syntax,but can change column syntax. My qu ...

  2. Linux系统安装Tomcat——.tar.gz版(old)

    这里简单地阐述一下rpm.deb.tar.gz的区别. rpm格式的软件包适用于基于Red Hat发行版的系统,如Red Hat Linux.SUSE.Fedora. deb格式的软件包则是适用于基于 ...

  3. MyEclipse 2016 Stable 1.0破解教程

    一.下载所需文件 1. Windows最新版: MyEclipse 2016 Stable 1.0离线安装包(文件大小:1.52GB)--完整安装包,无需在线下载http://pan.baidu.co ...

  4. vue.js带复选框表单的增删改查

    近段时间由于公司项目要求,前端开始使用VUE框架进行开发,最近刚开始学习,做了一个表单的增删改查,和大家分享一下. 页面模型代码设计如下 <template> <div id=&qu ...

  5. go mod 无法自动下载依赖包的问题

    go 11以后启用了go mod功能,用于管理依赖包. 当执行go mod init生成go.mod文件之后,golang在运行.编译项目的时候,都会检查依赖并下载依赖包. 在启动了go mod之后, ...

  6. HTTP_3_HTTP报文

    用户HTTP协议交互的信息被称为HTTP报文 简单的请求报文和响应报文实例 HTTP传输过程中常用设置 提升传输速率 编码压缩传输 (常见压缩格式:gzip compress deflate ) 分块 ...

  7. Mac相关快捷键操作

    拷贝: shift + option + 拖动拖动至目的地 创建快捷方式: option + command + 拖动至目的地

  8. Where is the clone one and how to extract it?

    One cannot be in two places at once. Do you know what's "Dual Apps"? Manufactures like Xia ...

  9. plotly之set_credentials_file问题

    相信了解可视化的同学们都听说过plotly,笔者也是第一次了解这个网站,然后兴冲冲地设置,但是没想到第一次进行在线账号初始化就出现了问题! python3报错为module 'plotly.tools ...

  10. Java基础:数组Array转成List的几种方法

    在编写Java程序中,经常要用的一个转换就是数组和List对象之间的互转. 最简单的方法就是遍历 数组,然后将数组元素依次添加进list中. 此方法略,虽然方法很简单,但总感觉这样的方法有点笨 第二种 ...