安装

如果系统没有该命令请安装:

apt-get install sysstat
yum install sysstat

安装完毕:

vi /etc/default/sysstat
ENABLED="true"

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

/etc/init.d/sysstat start

sar参数说明

-A 汇总所有的报告
-a 报告文件读写使用情况
-B 报告附加的缓存的使用情况
-b 报告缓存的使用情况
-c 报告系统调用的使用情况
-d 报告磁盘的使用情况
-g 报告串口的使用情况
-h 报告关于buffer使用的统计数据
-m 报告IPC消息队列和信号量的使用情况
-n 报告命名cache的使用情况
-p 报告调页活动的使用情况
-q 报告运行队列和交换队列的平均长度
-R 报告进程的活动情况
-r 报告没有使用的内存页面和硬盘块
-u 报告CPU的利用率
-v 报告进程、i节点、文件和锁表状态
-w 报告系统交换活动状况
-y 报告TTY设备活动状况

sar使用建议

怀疑CPU存在瓶颈

sar -u
sar -q

怀疑内存存在瓶颈

sar -B
sar -r
sar -W

怀疑I/O存在瓶颈

sar -b
sar -u
sar -d

查看CPU使用率

sar -u 1 3

打印cpu使用率情况每秒打印一次,打印3次结束。

[root@IT- bin]# sar -u
Linux 2.6.-.el6.x86_64 (IT-) 2015年11月05日 _x86_64_ ( CPU) 17时13分28秒 CPU %user %nice %system %iowait %steal %idle
17时13分29秒 all 6.12 0.00 3.06 0.00 0.00 90.82
17时13分30秒 all 5.10 0.00 3.06 0.00 0.00 91.84
17时13分31秒 all 7.14 0.00 2.04 0.00 0.00 90.82
平均时间: all 6.12 0.00 2.72 0.00 0.00 91.16

各列的指标分别是:
%user
用户模式下消耗的CPU时间的比例;
%nice
通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间的比例
%system
系统模式下消耗的CPU时间的比例;
%iowait
CPU等待磁盘I/O导致空闲状态消耗的时间比例;
%steal
利用Xen等操作系统虚拟化技术,等待其它虚拟CPU计算占用的时间比例;
%idle
CPU空闲时间比例;

查看平均负载

sar -q

查看运行队列中的进程数、系统上的进程大小、平均负载。

[root@IT- bin]# sar -q
Linux 2.6.-.el6.x86_64 (IT-) 2015年11月05日 _x86_64_ ( CPU) 17时16分42秒 runq-sz plist-sz ldavg- ldavg- ldavg-
17时16分43秒 0.00 0.00 0.00
17时16分44秒 0.00 0.00 0.00
17时16分45秒 0.00 0.00 0.00
平均时间: 0.00 0.00 0.00

runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载

查看内存使用状况

sar -r
可查看物理内存使用状况。

[root@IT- bin]# sar -r
Linux 2.6.-.el6.x86_64 (IT-) 2015年11月05日 _x86_64_ ( CPU) 17时18分11秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
17时18分12秒 82.90 26.70
17时18分13秒 82.90 26.70
17时18分14秒 82.90 26.70
平均时间: 82.90 26.70

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

查看页面交换发生状况

sar -W
页面发生交换时,服务器的吞吐量会大幅下降;服务器状况不良时,如果怀疑因为内存不足而导致了页面交换的发生,可以使用这个命令来确认是否发生了大量的交换;

[root@IT- bin]# sar -W
Linux 2.6.-.el6.x86_64 (IT-) 2015年11月05日 _x86_64_ ( CPU) 17时18分55秒 pswpin/s pswpout/s
17时18分56秒 0.00 0.00
17时18分57秒 0.00 0.00
17时18分58秒 0.00 0.00
平均时间: 0.00 0.00

pswpin/s:每秒系统换入的交换页面(swap page)数量
pswpout/s:每秒系统换出的交换页面(swap page)数量

Linux系统sar命令解析的更多相关文章

  1. 查看linux系统版本命令 (转)

    查看linux系统版本命令 分类: Linux 知识小结2011-10-10 15:26 240162人阅读 评论(9) 收藏 举报 linuxredhatdebianx86susesun 一.查看内 ...

  2. Linux系统ifconfig命令找不到,centos ifconfig Command not found

    centos ifconfig Command not found,Linux系统ifconfig命令找不到 >>>>>>>>>>>& ...

  3. Linux系统基础命令

    这是看itercast的学习笔记 Linux系统基础命令 日期时间 命令date用以查看.设置当前系统时间:格式化显示时间: +%Y--%m--%d 命令hwclock(clock)用以显示硬件时钟时 ...

  4. Linux系统-解压缩命令集合

    Linux系统-解压缩命令集合 linux zip命令 zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. ...

  5. LINUX系统VMSTAT命令详解

    linux系统vmstat命令详解 [转自 https://www.cnblogs.com/wensiyang0916/p/6514820.html] vmstat 1    1表示每秒采集一次vms ...

  6. 【转载】Linux系统下命令行连接蓝牙设备 查看查找 蓝牙

    Linux系统下命令行连接蓝牙设备 2018年11月26日 10:47:27 Zz笑对一切 阅读数:741   1.打开系统蓝牙 sudo service bluetooth start 1 进入bl ...

  7. Linux系统——awk命令

    awk命令不仅仅是Linux系统的命令,也是一种编程语言,用来处理数据和生成报告(Exel),处理的数据可以是一个或多个文件(标准输入和管道获取标准输入).可在命令行上编辑操作,也可以写成awk程序运 ...

  8. linux的sar命令未找到

    linux的sar命令未找到 一般的命令可以直接使用yum安装,但是sar和mpstat命令这两个命令都是在sysstat包里, 网上的解决方法:rpm -ivh gd-2.0.32-23.2.i58 ...

  9. 给大家介绍一下linux系统高级命令

    输出重定向(mip.0834jl.com) ;覆盖文件内容 回声' 123 ' 测试;覆盖原始内容 回声' 123 ' 测试;原始存在(共存) echo 'ken2 '(www.jl0834.com) ...

随机推荐

  1. 使用 Code Snippet 简化 Coding

    在开发的项目的时候,你是否经常遇到需要重复编写一些类似的代码,比如是否经常会使用 for.foreach ? 在编写这两个循环语句的时候,你是一个字符一个字符敲还是使用 Visual Studio 提 ...

  2. 一种简单,轻量,灵活的C#对象转Json对象的方案(续)

    本文参考资料 一种简单,轻量,灵活的C#对象转Json对象的方案 [源码]Literacy 快速反射读写对象属性,字段 一段废话 之前我已经介绍了这个方案的名称为JsonBuilder,这套方案最大的 ...

  3. MongoDB下载安装与简单增删改查

    Windows下MongoDB的安装和配置.启动和停止 下载地址:MongoDB的官方下载网址是:https://www.mongodb.org/downloads 安装步骤1. 点击下载的mongo ...

  4. Electron安装

    1.安装nodejs和npm 官网下载地址:https://nodejs.org/en/download/ 安装包:下载.msi 安装完成后: nodejs.npm都会安装好,path环境变量也自动设 ...

  5. Node.js:console模块

    console模块提供了一个简单的调试功能,类似与web浏览器的javscript console. 下面简单介绍下该模块的使用以及用途,我使用了ES6的模版字符串(使用反引号标识),有兴趣的可以去了 ...

  6. [C#] Linq To Objects - 如何操作字符串

    Linq To Objects - 如何操作字符串 开篇语: 上次发布的 <LINQ:进阶 - LINQ 标准查询操作概述>(90+赞) 社会反响不错,但自己却始终觉得缺点什么!“纸上得来 ...

  7. Android Tint

    Android Tint 如果要实现下图效果,第一时间想到的是让 UI 切图,第二时间想到的是自己会被 UI 打死,第三时间想到的是自己会被命名累死.  那么,这该如何快速高效的实现呢? 其实 An ...

  8. Python(六)面向对象、异常处理、反射、单例模式

    本章内容: 创建类和对象 面向对象三大特性(封装.继承.多态) 类的成员(字段.方法.属性) 类成员的修饰符(公有.私有) 类的特殊成员 isinstance(obj, cls) & issu ...

  9. RabbitMQ原理与相关操作(一)

    小编是菜鸟一枚,最近想试试MQ相关的技术,所以自己看了下RabbitMQ官网,试着写下自己的理解与操作的过程. 刚开始的第一篇,原理只介绍 生产者.消费者.队列,至于其他的内容,会在后续中陆续补齐. ...

  10. 理解浏览器历史记录(2)-hashchange、pushState

    本文也是一篇基础文章.继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变化对浏览器的历史记录也会影响,同时锚点的变化跟pushState也有一些关联.所以就花了点时间,把这两个东 ...