sysstat工具简介

sysstat工具简介里简单对sysstat工具包进行了一下说明,这篇日志衔接上一篇。主要说明其所包含的工具sadc、sdaf、sar、iostat、mpstat的用法。

一、sadc工具

sadc 位于 /usr/lib/sa目录中(64位系统在:/usr/lib64/sa目录中),如果你没有设置可执行路径,要用绝对路径来运行。sdac准备的说只是一个搜集写入工具,并不直接回显于屏幕上。sadc 是把数据写在一个二进制的文件中,如果想查看数据内容,需要用sadf工具来显示。

# /usr/lib64/sa/sadc --help
Usage: /usr/lib64/sa/sadc [ options... ] [ <interval> [ <count> ] ] [ <outfile> ]
Options are:
[ -d ] [ -F ] [ -I ] [ -V ]

参数说明:

-d 报告硬盘设置的相关统计;

-F 强制把数据写入文件;

-I

报告所有系统中断数据;

interval 表示时间间隔,单位是秒,比如3 ;

count 统计数据的次数,也是一个数字;

outfile

输出统计到outfile文件;

注意:此工具中的参数都是可选的,如果没有指定任何参数,比如 /usr/lib/sa/sadc - (后面的“-”是必须的,少了会出乱码和报错),则会输出数据到 /var/log/sa/

目录下的一个文件中。要通过sadf 或sar工具来查看。

[[email protected] test]# /usr/lib/sa/sadc -
[[email protected] test]# ls /var/log/sa 注:列出所有sa目录下的文件,根据文件的时间来判断哪个文件是最新的;
[[email protected] test]# sar -f /var/log/sa/sa11
或 sadf /var/log/sa/sa11
[[email protected] ~]# /usr/lib/sa/sadc  1 10 sa000  表示每1秒进行一次数据统计,共进行10次。
[[email protected] ~]# sar -f sa000

二、sadf工具

sdaf 能从二进制文件中提取sar所收集的数据;显示的格式不如sar直观。(不能就此认为该工具没有用,其主要用于导出为csv、xml等格式的文件,方便导入数据库或excel等程序。)官方给出的说明这样的:

displays data collected by sar in multiple formats (CSV, XML, etc.) This is useful to
load performance data into a database, or import them in a spreadsheet to make graphs.

上图是一个以sdaf导出的csv格式,通过excel生成的图表效果。具体用法,可以--help或man查看。

三、sar工具

sar 工具比较强大,既能收集系统CPU、硬盘、动态数据,也能显示动态显示,更能查看二进制数据文件;sar

的应用比较多,而且也比较复杂,数据更为精确。我们只了解一下常用的内容就行,大多数内容我们了解就行。

参数说明:

-A 显示所有历史数据,通过读取/var/log/sar

目录下的所有文件,并把它们分门别类的显示出来;

-b 通过设备的I/O中断读取设置的吞吐率;

-B 报告内存或虚拟内存交换统计;

-c

报告每秒创建的进程数;

-d 报告物理块设备(存储设备)的写入、读取之类的信息,如果直观一点,可以和p参数共同使用,-dp

-f

从一个二进制的数据文件中读取内容,比如 sar -f filename

-i interval 指定数据收集的时间,时间单位是秒;

-n

分析网络设备状态的统计,后面可以接的参数有 DEV、EDEV、NFS、NFSD、SOCK等。比如-n DEV

-o 把统计信息写入一个文件,比如 -o

filename ;

-P 报告每个处理器应用统计,用于多处理器机器,并且启用SMP内核才有效;

-p 显示友好设备名字,以方便查看,也可以和-d

和-n 参数结合使用,比如 -dp 或-np

-r 内存和交换区占用统计;

-R

-t

这个选项对从文件读取数据有用,如果没有这个参数,会以本地时间为标准 读出;

-u 报告CPU利用率的参数;

-v 报告inode,

文件或其它内核表的资源占用信息;

-w 报告系统交换活动的信息; 每少交换数据的个数;

-W 报告系统交换活动吞吐信息;

-x

用于监视进程的,在其后要指定进程的PID值;

-X 用于监视进程的,但指定的应该是一个子进程ID

注: 如果只用sar 命令,sar就是读取 /var/log/sa目录下最近系统状态文件。sar -A 读取/var/log/sa目录下所有文件数据。

应用举例:

1、如果我们想知道CPU的利用率;动态更新;下面的例子是每秒更新一次数据,总共更新五次;

[[email protected] sa]# sar -u  1 5
Linux 2.6.18-238.el5 (web20.com)        2012年06月11日
16时30分44秒       CPU     %user     %nice   %system   %iowait    %steal     %idle
16时30分45秒       all      0.00      0.00      0.00      0.00      0.00    100.00
16时30分46秒       all      0.00      0.00      0.00      0.00      0.00    100.00
16时30分47秒       all      0.00      0.00      0.00      0.00      0.00    100.00
16时30分48秒       all      0.00      0.00      0.00      0.00      0.00    100.00
16时30分49秒       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

CPU:表示机器内所有的CPU;

%user 表示CPU的利用率;

%nice 表示CPU在用户层优先级的百分比,0表示正常;

%system

表示当系统运行时,在用户应用层上所占用的CPU百分比;

%iowait 表示请求硬盘I/0数据流出时,所占用CPU的百分比;

%idle

表示空闲CPU百分比,值越大系统负载越低;

我们可以将上面的结果输出到文本,或者利用sar本身的-o参数输出为二进制文件。(输出的二进制文件可以通过-f参数查看)

2、查看网络吞吐量

[[email protected] ~]# sar -n DEV 2 5    //每2秒更新一数据,共更新5次
时间 IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s

上面的结果部分我并未复制过来。这里只是显示所显示的参数部分,其具体意思如下:

IFACE:设备名;

rxpck/s:每秒收到的包;

rxbyt/s:每秒收到的所有包的数量 ;

txbyt/s:每秒发送的所有包的数量 ;

txbyt/s:每秒发送的所有包的大小;

rxcmp/s:每秒收到数的据压缩包的数量;

txcmp/s :每秒传输的数据压缩包的数据;

rxmcst/s: 每秒收到的多播的包数量;

如果想获取某块网卡的流量情况,我们可以使用grep过滤。

四、iostat 

iostat 是sysstat包中重要性仅次于sar工具的又一重量级工具。其参数也比较多。其可以搜集CPU使用情况、磁盘IO状态。

Usage: iostat [ options... ] [ <interval> [ <count> ] ]    //iostat 参数   间隔时间  总显示次数

参数说明:

-c : 仅显示cpu的状态

-d : 仅显示存储设备的状态,不可以和-c一起使用

-k :

默认显示的是读入读出的block信息,用-k可以改成KB大小来显示

-t  : 显示日期

-p device | ALL :

device为某个设备或者某个分区,如果使用ALL,就表示要显示所有分区和设备的信息

-x 显示扩展状态,显示出更多内容

[[email protected] sa]# iostat -x
Linux 2.6.18-238.el5 (web20.com)        2012年06月11日
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.04    0.02    0.06    0.14    0.00   99.74
Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util

上面结果部分我进行了省略。我们主要讲下其给出的几个参数:

rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s

wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s

r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s

w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s

rsec/s: 每秒读扇区数。即 delta(rsect)/s

wsec/s: 每秒写扇区数。即 delta(wsect)/s

rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)

wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算)

avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)

avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。

await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)

svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)

%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)

如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

idle小于70% IO压力就较大了,一般读取速度有较多的wait.

五、mpstat

mpstat 用于多处理器系统中的CPU的利用率的统计。细化到具体某个cpu的状态时可以使用参数-p,处理器的ID从0开始。这个和top中按1的效果相同。

mpstat --help
Usage: mpstat [ options... ] [ <interval> [ <count> ] ]
Options are:
[ -P { <cpu> | ALL } ] [ -V ]

[[email protected] ~]# mpstat -P 0 2 10    //查看第一个CPU

[[email protected] ~]# mpstat 2 10          //查看所有CPU,也可以使用-p ALL
Linux 2.6.18-238.el5 (web20.sangame.com)        2012年06月12日
10时03分37秒  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s

同样,上面的显示中,我也省略了结果,只保留了参数。其中几个主要的参数的含义如下:

%user    显示在用户级别(application)运行使用 CPU 总时间的百分比。

%nice    显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。

%system 在核心级别(kernel)运行所使用 CPU 总时间的百分比。

%iowait 显示用于等待I/O操作占用 CPU 总时间的百分比。

%irq  显示在interval时间段内,硬中断占用的CPU总时间。

%soft  显示在interval时间段内,软中断占用的CPU总时间。

%steal   管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比。

%idle    显示 CPU 空闲时间占用CPU总时间的百分比。

intr/s 在internal时间段里,每秒CPU接收的中断的次数。

其计算理论如下:

CPU总的工作时间=total_cur=user+system+nice+idle+iowait+irq+softirq

total_pre=pre_user+ pre_system+ pre_nice+ pre_idle+ pre_iowait+ pre_irq+ pre_softirq

user=user_cur–user_pre

total=total_cur-total_pre

其中_cur 表示当前值,_pre表示interval时间前的值。上表中的所有值可取到两位小数点。

注:mpstat的取值来自于/proc/stat文件。该文件的几个参数解析如下:

ctxt: 给出了自系统启动以来CPU发生的上下文交换的次数。

btime: 给出了从系统启动到现在为止的时间,单位为秒。

processes (total_forks): 自系统启动以来所创建的任务的个数目。

procs_running:当前运行队列的任务的数目。

procs_blocked:当前被阻塞的任务的数目。

至此,sysstat的讲解差不多算做了一个完结,不过最新的sysstat包中还另外包含的工具有pidstat、nfsiostat、cifsiostat。具体可以参看其官方文档

时间: 2024-08-26 12:42:18

sysstat工具简介的相关文章

JS内存泄漏 和Chrome 内存分析工具简介(摘)

原文地址:http://web.jobbole.com/88463/ JavaScript 中 4 种常见的内存泄露陷阱 原文:Sebastián Peyrott 译文:伯乐在线专栏作者 - ARIGATO 链接:http://web.jobbole.com/88463/ 点击 → 了解如何加入专栏作者 了解 JavaScript 的内存泄露和解决方式! 在这篇文章中我们将要探索客户端 JavaScript 代码中常见的一些内存泄漏的情况,并且学习如何使用 Chrome 的开发工具来发现他们.读

pt-online-schema-change工具简介

1.工具简介 pt-online-schema-change是percona提供的一个mysql在线修改表结构的工具 2.使用场景 当需要修改线上数据库中某个表的表结构时,发现这个表的数据量比较大,如果使用alter table语句的话可能会阻塞较长的时间,那么可以考虑使用pt-online-schema-change在线修改表结构,而不用担心阻塞应用 3.工作原理 对于要修改表结构的表,pt-online-schema-change首先会创建一个该表的拷贝,这里只拷贝表结构而不涉及到数据,然后

htop,glances和dstat工具简介

htop,glances和dstat工具简介 简介:htop,glances以及dstat是三个性能检测工具 一.htop命令: 语法:htop [options] 如图,我们键入htop后就会出现这个界面 左上部分的1,2,3,4表示我的机器是四核的,显示他们的利用情况.还有内存和交换空间使用情况.中间大部分显示是进程的相关情况.右上部分显示当前的任务数,有多少是在运行,以及负载使用情况. 1.交互式命令(直接在终端输入htop后,进入交互式界面,以下的选项都是指按键操作): (1)u: 过滤

rman备份工具简介

RMAN工具简介: 备份的文件: 数据文件 归档日志 控制文件(当前控制文件) spfile 自动管理备份相关元数据 文件名称 完成备份的scn 以数据块为单位,只备份使用过的数据块(物理层面判断是否使用) 备份时查询块状态,备份瞬间有修改块 等待块使用完成再备份 因此不会出现块分离 对备份出来的文件进行压缩 自身压缩+支持压缩参数 加参数压缩 5:1 自动检测数据块是否损坏 块损坏,不对其备份 支持增量备份 使用rman前提条件: 正确的环境变量 正确的实例名 sys用户操作(推荐) 监听不支

55种开源数据可视化工具简介

55种开源数据可视化工具简介 雪姬 2015-04-21 11:47:56 数据可视化 评论(2)   数据时代数据可视化成为理解和表达数据的有效甚至是唯一的手段. 一共56个,盘点最实用的大数据可视化分析工具 工欲善其事必先利其器,本文对55个流行的数据可视化工具开源协议,主页,文档,案例等资源的进行简单介绍,其中包括著名的D3.js,R,Gephi,Raphaël,Processing.js,Tableau Public,Google Chart Tools,Arbor.js等,资料来源ht

源代码管理工具简介

#一. 源代码管理工具简介* 有必要给大家的介绍一下,如果不说的话,大家都不知道它是干嘛的,首先我们要逐渐的建立器一个感受,对源代码管理工具的一个感觉. * 为什么会出现源代码管理工具? * 首先它得有一定的功能,对不对?任何的发明创造,都是为了解决人类的问题的,对不对?甚至一些语法规则的发明也是为了解决一定的问题的,对不对? * 我随便举个例子啊,举个简单的例子同学们理解一下,比如说像以前我们为了存储一个整形数据,是不是发明了一个叫int 类型的.后来发现不太靠谱,因为他只能存一个整数,所以就

linux下面的性能分析工具简介

iostat 命令详解 iostat用于输出cpu和磁盘I/O相关的统计信息.命令格式: Usage: iostat [ options ] [ <interval> [ <count> ] ] Options are: [ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [ -j { ID | LABEL | PATH | UUID | ... } [ <devi

C语言工具简介

1 自动化测试: 测试代码重要性不言而喻,通过测试的自动化,生活会变得很轻松.几乎所有的程序员也都在使用自动化测试.C语言的测试框架也很多, 比如AceUnit:http://aceunit.sourceforge.net/projects/aceunit 如果你写的是命令行工具,用的是Unix命令行,可以使用shunit2工具,它允许创建shell脚本来测试脚本和命令. http://code.google.com/p/shunit2 2 GCC的优化 gcc可以自动进行很多优化,默认情况下是

(转)Synopsys工具简介

DC Ultra--Design Compiler的最高版本 在Synopsys软件中完整的综合方案的核心是DC UltraTM,对所有设计而言它也是最好级别的综合平台.DC Ultra添加了全面的数据通路和时序优化技术,并通过工业界的反复证明.DC Ultra具有独特的优化技术,能满足今天设计的各种挑战.DC Ultra提供快速的具有先进水平的数据通路优化技术,能建立快速关键路径时序.另外,DC Ultra采用后布局和优化布线技术,易于较快达到时序收敛.DC Ultra已在工业界确立了领先地位