linux下的sar工具简介

我习惯使用的命令是 :
sar  -r  -f   /var/log/sa/sa24

sar 既能报告当前数据,也能报告历史数据

不带选项执行会以10分钟为间隔报告自午夜起当天的CPU利用率。

脚本sal收集了这些历史数据,它是sar软件包的一部分,必须设置为定期从cron里运行

sar把自已收集的数据以二进制格式保存在/var/log/sa里

使用 sar -d 可以得到当天磁盘活动的情况汇总

sar -n  DEV 则能给出网络接口的统计信息

sar -A 可以报告所有的信息

sar 适用于快速粗略了解历史信息。

sar 命令行的常用格式: sar [options] [-o file] t [n]

options 为命令行选项,sar命令的选项很多,下面只列出常用选项:
-A:所有报告的总和。
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:硬盘使用报告。
-r:没有使用的内存页面和硬盘块。
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。
-R:进程的活动情况。
-y:终端设备活动情况。
-w:系统交换活动。

2  使用
pidstat 2 5
//每隔2秒,显示5次,所有活动进程的CPU使用情况
pidstat -p 3132 2 5
//每隔2秒,显示5次,PID为3132的进程的CPU使用情况显示
pidstat -p 3132 2 5 -r
//每隔2秒,显示5次,PID为3132的进程的内存使用情况显示

查看CPU使用情况

sar 2 5
//每隔2秒,显示5次,CPU使用的情况

%usr:CPU处在用户模式下的时间百分比。 
%sys:CPU处在系统模式下的时间百分比。 
%wio:CPU等待输入输出完成时间的百分比。 
%idle:CPU空闲时间百分比。 
在所有的显示中,我们应主要注意%wio和%idle,%wio的值过高,表示硬盘存在I/O瓶颈, 
%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存, 
此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表 
明系统中最需要解决的资源是CPU。

sar 1 10 > data.txt
//每隔1秒,写入10次,把CPU使用数据保存到data.txt文件中。
sar 1 0 -e 15:00:00 > data.txt
//每隔1秒记录CPU的使用情况,直到15点,数据将保存到data.txt文件中。(-e 参数表示结束时间,注意时间格式:必须为hh:mm:ss格式)
sar 1 0 -r -e 15:00:00 > data.txt
//每隔1秒记录内存使用情况,直到15点,数据将保存到data.txt文件中。
sar 1 0 -n DEV -e 15:00:00 > data.txt
//每隔1秒记录网络使用情况,直到15点,数据将保存到data.txt文件中。

例二:使用命行sar -v t n 
例如,每30秒采样一次,连续采样5次,观察核心表的状态,需键入如下命令: 
# sar -v 30 5 
屏幕显示: 
SCO_SV scosysv 3.2v5.0.5 i80386 10/01/2001 
10:33:23 proc-sz ov inod-sz ov file-sz ov lock-sz  (-v) 
10:33:53 305/ 321  0 1337/2764  0 1561/1706 0 40/ 128 
10:34:23 308/ 321  0 1340/2764  0 1587/1706 0 37/ 128 
10:34:53 305/ 321  0 1332/2764  0 1565/1706 0 36/ 128 
10:35:23 308/ 321  0 1338/2764  0 1592/1706 0 37/ 128 
10:35:53 308/ 321  0 1335/2764  0 1591/1706 0 37/ 128 
显示内容包括: 
proc-sz:目前核心中正在使用或分配的进程表的表项数,由核心参数MAX-PROC控制。 
inod-sz:目前核心中正在使用或分配的i节点表的表项数,由核心参数 
MAX-INODE控制。 
file-sz: 目前核心中正在使用或分配的文件表的表项数,由核心参数MAX-FILE控 
制。 
ov:溢出出现的次数。 
Lock-sz:目前核心中正在使用或分配的记录加锁的表项数,由核心参数MAX-FLCKRE 
控制。 
显示格式为 
实际使用表项/可以使用的表项数 
显示内容表示,核心使用完全正常,三个表没有出现溢出现象,核心参数不需调整,如 
果出现溢出时,要调整相应的核心参数,将对应的表项数加大。 
例三:使用命行sar -d t n 
例如,每30秒采样一次,连续采样5次,报告设备使用情况,需键入如下命令: 
# sar -d 30 5 
屏幕显示: 
SCO_SV scosysv 3.2v5.0.5 i80386 10/01/2001 
11:06:43 device %busy avque r+w/s blks/s avwait avserv (-d) 
11:07:13 wd-0 1.47 2.75 4.67 14.73  5.50 3.14 
11:07:43 wd-0 0.43 18.77  3.07 8.66 25.11 1.41 
11:08:13 wd-0 0.77 2.78 2.77 7.26 4.94 2.77 
11:08:43 wd-0 1.10 11.18  4.10 11.26  27.32 2.68 
11:09:13 wd-0 1.97 21.78  5.86 34.06 69.66 3.35 
Average wd-0 1.15 12.11  4.09 15.19 31.12 2.80 
显示内容包括: 
device: sar命令正在监视的块设备的名字。 
%busy: 设备忙时,传送请求所占时间的百分比。 
avque: 队列站满时,未完成请求数量的平均值。 
r+w/s: 每秒传送到设备或从设备传出的数据量。 
blks/s: 每秒传送的块数,每块512字节。 
avwait: 队列占满时传送请求等待队列空闲的平均时间。 
avserv: 完成传送请求所需平均时间(毫秒)。 
在显示的内容中,wd-0是硬盘的名字,%busy的值比较小,说明用于处理传送请求的有 
效时间太少,文件系统效率不高,一般来讲,%busy值高些,avque值低些,文件系统 
的效率比较高,如果%busy和avque值相对比较高,说明硬盘传输速度太慢,需调整。 
例四:使用命行sar -b t n 
例如,每30秒采样一次,连续采样5次,报告缓冲区的使用情况,需键入如下命令: 
# sar -b 30 5 
屏幕显示: 
SCO_SV scosysv 3.2v5.0.5 i80386 10/01/2001 
14:54:59 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s (-b) 
14:55:29 0 147 100  5 21 78  0 0 
14:55:59 0 186 100  5 25 79  0 0 
14:56:29 4 232  98  8 58 86  0 0 
14:56:59 0 125 100  5 23 76  0 0 
14:57:29 0  89 100  4 12 66  0 0 
Average  1 156  99  5 28 80  0 0 
显示内容包括: 
bread/s: 每秒从硬盘读入系统缓冲区buffer的物理块数。 
lread/s: 平均每秒从系统buffer读出的逻辑块数。 
%rcache: 在buffer cache中进行逻辑读的百分比。 
bwrit/s: 平均每秒从系统buffer向磁盘所写的物理块数。 
lwrit/s: 平均每秒写到系统buffer逻辑块数。 
%wcache: 在buffer cache中进行逻辑读的百分比。 
pread/s: 平均每秒请求物理读的次数。 
pwrit/s: 平均每秒请求物理写的次数。 
在显示的内容中,最重要的是%cache和%wcache两列,它们的值体现着buffer的使用效 
率,%rcache的值小于90或者%wcache的值低于65,应适当增加系统buffer的数量,buffer 
数量由核心参数NBUF控制,使%rcache达到90左右,%wcache达到80左右。但buffer参数 
值的多少影响I/O效率,增加buffer,应在较大内存的情况下,否则系统效率反而得不到 
提高。 
例五:使用命行sar -g t n 
例如,每30秒采样一次,连续采样5次,报告串口I/O的操作情况,需键入如下命令: 
# sar -g 30 5 
屏幕显示: 
SCO_SV scosysv 3.2v5.0.5 i80386 11/22/2001 
17:07:03  ovsiohw/s  ovsiodma/s ovclist/s (-g) 
17:07:33 0.00 0.00 0.00 
17:08:03 0.00 0.00 0.00 
17:08:33 0.00 0.00 0.00 
17:09:03 0.00 0.00 0.00 
17:09:33 0.00 0.00 0.00 
Average  0.00 0.00 0.00 
显示内容包括: 
ovsiohw/s:每秒在串口I/O硬件出现的溢出。 
ovsiodma/s:每秒在串口I/O的直接输入输出通道高速缓存出现的溢出。 
ovclist/s :每秒字符队列出现的溢出。 
在显示的内容中,每一列的值都是零,表明在采样时间内,系统中没有发生串口I/O溢 
出现象。

linux下sar tool command note的更多相关文章

  1. Java - 问题集 - linux下,jar: command not found

    linux下的找不到jar命令解决方法如下: 1. 确认jdk是否已安装 2. 检查jdk环境变量是否已设置,并且确认该设置已生效 3. 1,2两步均正常时,建立jar的软链接 # cd /usr/b ...

  2. linux下提示bash:command not found

    新安装的linux系统,如果进行精简安装可能会出现bash:command not found 的提示,大家在安装的时候可以选择默认安装basic的组件,一般即可.到时候可以再升级.   如果新装的系 ...

  3. Linux下解决“shutdown: command not found"问题

    今天关机时,使用shutdown来执行此操作,但出现了一个"bash:shutdown:command not found"错误提示.这让我很困惑,这个命令在系统中是肯定存在的,但 ...

  4. 今天领导分享了一个探测端口的命令-linux下提示bash:command not found

    今天领导分享了一个探测端口的命令,于是试了一下,提示未找到-bash: nc: command not found  因此决定将bash的命令在复习一下,温故而知新 总结整理于此: 确定你的DNS可以 ...

  5. linux下形如{command,parameter,parameter}执行命令 / bash花括号扩展

    背景 在复现vulhub上的漏洞ActiveMQ Deserialization Vulnerability (CVE-2015-5254)时,发现官方文档给出反弹shell的payload bash ...

  6. Linux下bash: scp: command not found问题 或者装ssh包时报错 Requires: libedit.so.0()(64bit)

        一.用scp命令从物理主机向CentOS 6.1虚拟机传送文件,提示以下错误:bash: scp: command not found到CentOS 6.1虚拟机查看也缺少scp命令.该虚拟机 ...

  7. Linux 下 -bash: mysql: command not found解决办法

    -bash: mysql: command not found 1.vim ~/.bash_profile 最下面写 export PATH=$PATH:/usr/local/mysql/bin(你的 ...

  8. Linux下配置IP及安装vmware tool

    =======================CentOS 7以下======================= 配置IP: 1.获得mac地址 2.编辑ifcfg-eth0文件:vi /etc/sy ...

  9. linux下报错bash: service: command not found

    在linux下操作的时候经常会遇到,bash: service: command not found这个错误,以前在网上找了,照着弄了,也没细看原因,今天又碰到这个问题,就顺便研究一下. 1.通常这种 ...

随机推荐

  1. DHT(Distributed Hash Table,分布式哈希表)

    DHT(Distributed Hash Table,分布式哈希表)类似Tracker的根据种子特征码返回种子信息的网络. DHT全称叫分布式哈希表(Distributed Hash Table),是 ...

  2. Android Tasker应用之自动查询并显示话费流量套餐信息

    Android Tasker应用之自动查询并显示话费流量套餐信息 虽然Android平台有非常多的流量监控软件,但最准确的流量数据还是掌握在运营商手里.有些朋友可能像我一样时不时地发短信查询流量信息, ...

  3. LR杂记-nmon+analyser监控linux系统资源

    1.查看linux具体版本号信息 file /sbin/init 2.下载相应nmon版本号 http://pkgs.repoforge.org/nmon/ 3.安装 rpm -ivh nmon-14 ...

  4. NDK开发环境搭建_r8

    本文主内容: 1.  Android NDK 安装 2.  安装Cygwin与使用NDK编译 3.  在Eclipse中集成C/C++开发环境CDT 4.  安装Sequoyah插件 5.  JNI编 ...

  5. python测试开发django-10.django连接mysql

    前言 Django 对各种数据库提供了很好的支持,包括:PostgreSQL.MySQL.SQLite.Oracle.本篇以mysql为例简单介绍django连接mysql进行数据操作 Django连 ...

  6. spring Annotation 组件注入

    spring 注解的分类 启动spring自己主动扫描功能 <context:component-scan/> 1.@Repository: 它用于将数据訪问层 (DAO 层 ) 的类标识 ...

  7. 约合¥1720 LG法国称G Watch将于6月开卖

    近来LG法国官方透露音讯称旗下首款智能手表G Watch将于本年6月份正式出售,预定报价为199欧元(约合¥1720). 这就意味着这款智能手表会在googleI/O大会完成之后就会开端出售,从goo ...

  8. UIButton使用方法汇总

    //按钮初始化类方法 UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];//这里创建一个圆角矩形的按钮 //按 ...

  9. Web系统自己主动化部署脚本

    Web开发的项目,除了在本地直接执行外,还可能常常须要在server上部署. 写了个自己主动化部署的脚本,仅供參考. 不少地方须要配置路径.个人建议使用绝对路径,不用依赖执行脚本时所在的路径. #!/ ...

  10. Objective-C:对象之间循环引用会造成死循环

    对象之间的循环引用        两个对象A.B,有可能会出现一种特殊的情况:A中包含B的实例变量:B中又包含A的实例变量,如果两个实例变量都是强引用(A有B实例变量的所有权,B也有A的实例变量的所有 ...