sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以

从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、

进程活动及IPC有关的活动等。本文主要以CentOS 6.3 x64系统为例,介绍sar命令。

格式

sar [options] [-A] [-o file] t [n]

参数 说明
t 为采样间隔,默认是秒
n 为采样次数,默认是1
-o file 表示将命令结果以二进制格式存放在文件中,file是文件名
-A 所有报告的总和
-u 输出CPU使用情况的统计信息
-v 输出inode,文件和其他内核表的统计信息
-d 输出每一个块设备的活动信息
-r 输出内存和交换空间的统计信息
-b 显示I/O和传送速率的统计信息
-a 文件读写情况
-c 输出进程统计信息,每秒创建的进程数
-R 输出内存页面的统计信息
-y 终端设备活动情况
-w 输出系统交换活动信息

CPU 资源监控

sar -u  -o test 8 4
Linux 2.6.32-358.el6.x86_64 (nagios_s1) 11/12/15 _x86_64_ (1 CPU) 16:07:18 CPU %user %nice %system %iowait %steal %idle
16:07:26 all 0.00 0.00 0.00 0.00 0.00 100.00
16:07:34 all 0.00 0.00 0.00 0.00 0.00 100.00
16:07:42 all 0.00 0.00 0.00 0.00 0.00 100.00
16:07:50 all 0.00 0.00 0.00 0.00 0.00 100.00
Average: all 0.00 0.00 0.00 0.00 0.00 100.00 %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 的值持续低于1,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

如果要查看二进制文件 test 中的内容,需键入如下sar命令:

sar -u -f test


监控inode、文件和其他内核表

sar -v 8 4
Linux 2.6.32-358.el6.x86_64 (nagios_s1) 11/12/15 _x86_64_ (1 CPU) 16:32:40 dentunusd file-nr inode-nr pty-nr
16:32:48 5296 288 7672 2
16:32:56 5296 288 7672 2
16:33:04 5296 288 7672 2
16:33:12 5296 288 7672 2
Average: 5296 288 7672 2 dentunusd : 目录高速缓存中未被使用的条目数量
file-nr : 文件句柄(file handle) 的使用数量
inode-nr : 索引节点句柄(inode handle) 的使用数量
pty-nr : 使用的pty数量

监控内存和交换空间

sar -r 8 4
Linux 2.6.32-358.el6.x86_64 (nagios_s1) 11/12/15 _x86_64_ (1 CPU) 16:41:15 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
16:41:23 301116 200320 39.95 10688 147824 56648 2.77
16:41:31 301116 200320 39.95 10688 147824 56648 2.77
16:41:39 301116 200320 39.95 10688 147824 56648 2.77
16:41:47 301116 200320 39.95 10688 147824 56648 2.77
Average: 301116 200320 39.95 10688 147824 56648 2.77 -r Report memory utilization statistics. The following values are displayed: kbmemfree : 这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused : 这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
%memused : 这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers :这个值就是free命令中的buffer.
kbcached :这个值就是free命令中的cache.
kbcommit :保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit :这个值是kbcommit与内存总量(包括swap)的一个百分比.

内存分页监控

sar -B 8 4
Linux 2.6.32-358.el6.x86_64 (nagios_s1) 11/13/15 _x86_64_ (1 CPU) 11:08:48 pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
11:08:56 0.00 0.00 4.25 0.00 9.25 0.00 0.00 0.00 0.00
11:09:04 0.00 0.00 5.25 0.00 10.75 0.00 0.00 0.00 0.00
11:09:12 0.00 0.00 3.75 0.00 8.89 0.00 0.00 0.00 0.00
11:09:20 0.00 0.00 3.75 0.00 10.11 0.00 0.00 0.00 0.00
Average: 0.00 0.00 4.25 0.00 9.75 0.00 0.00 0.00 0.00 Report paging statistics. The following values are displayed: pgpgin/s: 表示每秒从磁盘或SWAP置换到内存的字节数(KB)
pgpgout/s: 表示每秒从内存置换到磁盘或SWAP的字节数(KB)
fault/s: 每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)
majflts/s: 每秒钟产生的主缺页数
pgfree/s: 每秒被放入空闲队列中的页个数
pgscank/s: 每秒被kswapd扫描的页个数
pgscand/s: 每秒直接被扫描的页个数
pgsteal/s: 每秒钟从cache中被清除来满足内存需要的页个数
%vmeff: 每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比

什么是缺页

当CPU请求一个不在RAM中的内存页时,会发生缺页,比如我们从内存读取/写入数据,而数据未在内存,此时都会发生缺页.

major表示主缺页,主缺页是要求输入/输出到磁盘的缺页.

minor表示次缺页,次缺页是任何其它的缺页.


I/O和传送速率监控

 sar -b 8 4
Linux 2.6.18-308.el5xen (tlsgzsit01) 11/13/2015 12:04:30 PM tps rtps wtps bread/s bwrtn/s
12:04:38 PM 10.92 0.00 10.92 0.00 116.44
12:04:46 PM 1.75 0.00 1.75 0.00 53.13
12:04:54 PM 2.23 0.00 2.23 0.00 61.46
12:05:02 PM 1.25 0.00 1.25 0.00 24.94
Average: 4.03 0.00 4.03 0.00 63.92 tps : 每秒钟物理设备的 I/O 传输总量
rtps : 每秒钟从物理设备读入的数据总量
wtps : 每秒钟向物理设备写入的数据总量
bread/s : 每秒中从物理设备读入的数据量,单位为 块/s
bwrtn/s : 每秒中从物理设备写入的数据量,单位为 块/s

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

sar 与其它命令相比,它能查看各项指标随时间变化的情况;

sar -q
Linux 3.10.0-123.el7.x86_64 (localhost.localdomain) 11/02/2017 _x86_64_ (2 CPU) 12:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
12:10:01 AM 0 150 0.00 0.01 0.05 0
12:20:01 AM 0 150 0.00 0.01 0.05 0
12:30:01 AM 2 150 0.00 0.01 0.05 0
12:40:01 AM 0 150 0.00 0.01 0.05 0
12:50:01 AM 0 150 0.00 0.01 0.05 0
01:00:01 AM 1 150 0.00 0.01 0.05 0
01:10:01 AM 1 150 0.00 0.01 0.05 0
01:20:01 AM 0 150 0.00 0.01 0.05 0
01:30:01 AM 0 150 0.00 0.01 0.05 0
01:40:01 AM 1 150 0.00 0.01 0.05 0
01:50:01 AM 1 150 0.00 0.01 0.05 0
02:00:01 AM 0 150 0.00 0.01 0.05 0
02:10:01 AM 0 150 0.00 0.01 0.05 0
02:20:01 AM 0 150 0.00 0.01 0.05 0
02:30:01 AM 0 150 0.00 0.01 0.05 0 runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载

Linux 系统性能分析工具 sar的更多相关文章

  1. (转)Linux 系统性能分析工具图解读(一、二)

    Linux 系统性能分析工具图解读(一.二) 原文:http://oilbeater.com/linux/2014/09/08/linux-performance-tools.html 最近看了 Br ...

  2. Linux系统性能分析工具 sar--系统活动情况报告

    1.结论: sar 命令是linux系统上,分析系统性能的常用工具,可以查看cpu.内存.磁盘IO.文件读写.系统调用, 2.sar会有一个定时任务,定期记录当前系统信息到  /var/log/sa/ ...

  3. Linux系统性能分析工具

    1.  uptime 2.  htop 3. mpstat 4 . iostat 5. dstat 6. netstat 7. tcpdump 8. sar

  4. sar 找出系统瓶颈的利器 目前Linux上最为全面的系统性能分析工具之一 直接 sar -dur 1 30 即可看内存 CPU和IO占用

    12. sar 找出系统瓶颈的利器 sar是System Activity Reporter(系统活动情况报告)的缩写.sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行 ...

  5. Linux系统性能分析

    http://c.biancheng.net/cpp/html/2782.htmlLinux系统性能分析 这篇教程的目的是向大家介绍一些免费的系统性能分析工具(命令),使用这些工具可以监控系统资源使用 ...

  6. Linux系统性能统计工具Sar和实时系统性能监控脚本

    sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情 ...

  7. 【转】Linux系统性能分析命令

    作为一名linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行,但是由于硬件问题.软件问题.网络环境等的复杂性和多变性,导致对系统的优化变得异常复杂,如何定位性能问题出在哪个 ...

  8. [Linux 性能检测工具]SAR

    SAR NAME: SAR报告,收集,保存系统活动信息 语法: sar  [ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -i interval ] [ -m ...

  9. 8.perf top系统性能分析工具

    perf 是一个调查 Linux 中各种性能问题的有力工具. # perf --help  usage: perf [--version] [--help] COMMAND [ARGS]  The m ...

随机推荐

  1. CPU性能分析

    CPU性能分析工具 lscpu:查看CPU硬件信息 lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Litt ...

  2. MVC笔记之一:MVC编程模型

    MVC是ASPX.NET用于构造Web应用的一种框架,和传统的ASPX.NET开发模式(Web Form)在架构上相同,同样采用三层框架实现,但相比传输开的模式,各层架构更加规范. 传统三层架构: V ...

  3. 【牛客网71E】 组一组(差分约束,拆位)

    传送门 NowCoder Solution 考虑一下看到这种区间或与区间与的关系,拆一下位. 令\(s_i\)表示前缀和,则: 那么如果现在考虑到了第\(i\)为,有如下4种可能: \(opt=1\) ...

  4. Servlet案例4:用户注册

    数据库准备: CREATE DATABASE web; USE web; CREATE TABLE `user` ( `uid` ) NOT NULL, `username` ) DEFAULT NU ...

  5. apk文件md5校验之用好压对下载服务器测试[测试篇]

    往往稍微有点规模的公司,都会有一个独立下载服务器,那么,我还是简单说一下下载服务器的原理吧,首先后台上传文件或软件,然后web服务器通过定时脚本检测,如有变化,则将文件同步出去到下载服务器,源站数据库 ...

  6. 人生苦短:Python里的17个“超赞操作

    人生苦短,我选Python”.那么,你真的掌握了Python吗?   1. 交换变量 有时候,当我们要交换两个变量的值时,一种常规的方法是创建一个临时变量,然后用它来进行交换.比如: # 输入 a = ...

  7. [视频]K8飞刀 hacking team flash0day shellcode exploit

    [视频]K8飞刀 hacking team flash0day shellcode exploit 链接:https://pan.baidu.com/s/1aVEElE2Y6zhOkaWKsUZ7Hg ...

  8. Cookie的存储、获取、删除操作

    var Cookie={ set: function (name, value, days) { var d = new Date; d.setTime(d.getTime() + 24*60*60* ...

  9. webpack-loader是怎样炼成的

    目录 啰嗦两句 loader 是干什么的 loader 的工具箱 --context loader 实战 啰嗦两句 学习这件事从学习动机上来看,可以分成两种情况:主动学习和被动学习.主动学习就是,某天 ...

  10. mpvue支持小程序的分包加载

    目录 clone mpvue-quickstart 模板 分包体验 现有项目的分包改造 这个功能可以说是让我们这些用 mpvue 的等的很焦灼,眼看着项目的大小一天天地逼近 2M,mpvue 还不能很 ...