Linux 系统性能分析工具 sar
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的更多相关文章
- (转)Linux 系统性能分析工具图解读(一、二)
		
Linux 系统性能分析工具图解读(一.二) 原文:http://oilbeater.com/linux/2014/09/08/linux-performance-tools.html 最近看了 Br ...
 - Linux系统性能分析工具 sar--系统活动情况报告
		
1.结论: sar 命令是linux系统上,分析系统性能的常用工具,可以查看cpu.内存.磁盘IO.文件读写.系统调用, 2.sar会有一个定时任务,定期记录当前系统信息到 /var/log/sa/ ...
 - Linux系统性能分析工具
		
1. uptime 2. htop 3. mpstat 4 . iostat 5. dstat 6. netstat 7. tcpdump 8. sar
 - sar 找出系统瓶颈的利器 目前Linux上最为全面的系统性能分析工具之一 直接 sar -dur 1 30 即可看内存 CPU和IO占用
		
12. sar 找出系统瓶颈的利器 sar是System Activity Reporter(系统活动情况报告)的缩写.sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行 ...
 - Linux系统性能分析
		
http://c.biancheng.net/cpp/html/2782.htmlLinux系统性能分析 这篇教程的目的是向大家介绍一些免费的系统性能分析工具(命令),使用这些工具可以监控系统资源使用 ...
 - Linux系统性能统计工具Sar和实时系统性能监控脚本
		
sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情 ...
 - 【转】Linux系统性能分析命令
		
作为一名linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行,但是由于硬件问题.软件问题.网络环境等的复杂性和多变性,导致对系统的优化变得异常复杂,如何定位性能问题出在哪个 ...
 - [Linux 性能检测工具]SAR
		
SAR NAME: SAR报告,收集,保存系统活动信息 语法: sar [ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -i interval ] [ -m ...
 - 8.perf top系统性能分析工具
		
perf 是一个调查 Linux 中各种性能问题的有力工具. # perf --help usage: perf [--version] [--help] COMMAND [ARGS] The m ...
 
随机推荐
- nginx并发模型与traffic_server并发模型简单比较
			
ginx并发模型: nginx 的进程模型采用的是prefork方式,预先分配的worker子进程数量由配置文件指定,默认为1,不超过1024.master主进程创建监听套接口,fork子进程以后,由 ...
 - 剑指offer编程题Java实现——面试题10二进制中1的个数
			
题目: 请实现一个函数,输入一个整数,输出该整数二进制表示中1的个数.例如,把9表示成二进制是1001,有2位是1,该函数输出2解法:把整数减一和原来的数做与运算,会把该整数二进制表示中的最低位的1变 ...
 - Javascript高级编程学习笔记(8)—— 变量
			
日常更新~~ 变量 所有的编程语言中,变量都是赋予语言灵活性的根本所在. 那么JS中的变量又有那些与众不同的地方呢.? 按照ECMA-262的定义,JS的变量和其他编程语言的变量有很大的区别 其松散类 ...
 - 三种方法在当前目录下打开cmd命令窗口
			
概述 运行npm的时候,每次都要cd到目录,很麻烦,所以总结了三种在当前目录下直接打开cmd窗口的方法,供以后开发时参考,相信对其他人也有用. 方法一 在当前目录按住shift再右键. 会看到右键菜单 ...
 - OpenStack-Ocata版+CentOS7.6 云平台环境搭建 —7.网络服务Neutron配置
			
网络服务Neutron本章节结束如何安装并配置网络服务(neutron)采用:ref:`provider networks <network1>`或:ref:`self-service n ...
 - jquery-validae
			
$(document).ready(function() { jQuery.validator.addMethod("realName", function(value, elem ...
 - Hive的union和join操作
			
建表语句: create table tb_in_base ( id bigint, devid bigint, devname string ) partitioned b ...
 - 从零开始学 Web 之 Ajax(四)接口文档,验证用户名唯一性案例
			
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
 - SQL 必知必会·笔记<2>检索和排序数据
			
1.检索数据 使用SELECT 检索表数据,必须至少给出两条信息——想选择什么, 以及从什么地方选择. 检索不同的值 使用DISTINCT关键字,检索不同的值,使用示例: SELECT DISTINC ...
 - android开发(2):多页面的实现 | Fragment的创建与使用
			
APP中出现多个页面再常见不过了.使用activity与fragment都能实现多页面,这里使用fragment来实现.延续“知音”这个APP的开发,之前已经创建了底部导航条与mainactivity ...