sysstat

Sysstat的工具集sar、 iostat、mpstat、sadf、sar、sadc

* iostat 工具提供CPU使用率及硬盘吞吐效率的数据;

* mpstat 工具提供单个处理器或多个处理器相关数据;

* sar 工具负责收集、报告并存储系统活跃的信息;

* sa1 工具负责收集并存储每天系统动态信息到一个二进制的文件中。它是通过计划任务工具cron来运行,

是为sadc所设计的程序前端程序;

* sa2 工具负责把每天的系统活跃性息写入总结性的报告中。它是为sar所设计的前端 ,要通过cron来调用

* sadc 是系统动态数据收集工具,收集的数据被写一个二进制的文件中,它被用作sar工具的后端;

* sadf 显示被sar通过多种格式收集的数据;

如果您想得到Sysstat工具集所收集的系统信息自动存为某个文件中,你必须通过cron 为 sa1 和sa2 做计划任务。我们可以通过修改用户的crontab。在默认的情况下,Sysstat历史信息将被存放在/var/log/sa文件中

创建Sysstat的启动脚本;

[root@localhost ~]# touch  /etc/rc.d/init.d/sysstat

[root@localhost ~]# vi /etc/rc.d/init.d/sysstat

#!/bin/sh

# Begin $rc_base/init.d/sysstat

# Based on sysklogd script from LFS-3.1 and earlier.

# Rewritten by Gerard Beekmans  – gerard@linuxfromscratch.org

. /etc/sysconfig/rc

. $rc_functions

case “$1” in

start)

echo “Calling the system activity data collector (sadc)…”

/usr/lib/sa/sadc -F -L –

evaluate_retval

;;

*)

echo “Usage: $0 start”

exit 1

;;

esac

# End $rc_base/init.d/sysstat

[root@localhost ~]# chmod 755 /etc/rc.d/init.d/sysstat

[root@localhost ~]# ln -sf /etc/rc.d/init.d/sysstat  /etc/init.d/sysstat

有了Sysstat的守护进程,这样我们开机后,Sysstat的守护进程,就时时刻刻的为我们服务了。sa 、sa1或sa2自动把信息存在 /var/log/sa目录的二进制文件中,我们可以通过sar工具来提取这些系统信息的历史;

当然我们也可以通过手动的方法来打开Sysstat的守护程序,也就是我们前面所制作的sysstat;

[root@localhost ~]# /etc/rc.d/init.d/sysstat start

下面的方法也行;

[root@localhost ~]# /usr/lib/sa/sa1

[root@localhost ~]# /usr/lib/sa/sa2

sadc 的用法;

/usr/lib/sa/sadc [ -d ] [ -F ] [ -I ] [ -L ] [ -V ] [ interval [ count ] ] [ outfile ]

参数说明:

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

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

-I  报告所有系统中断数据;

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

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

outfile 输出统计到outfile文件;

注意:此工具中的参数都是可选的,如果没有指定任何参数,比如 /usr/lib/sa/sadc – ,则会输出数

据到 /var/log/sa/ 目录下的一个文件中。我们要通过sadf 或sar工具来查看;

[root@localhost beinan]# /usr/lib/sa/sadc  –

[root@localhost beinan]# ls /var/log/sa   注:列出所有sa目录下的文件,根据文件的时间来判断哪个文件是最新的;

[root@localhost beinan]# sar  -f  /var/log/sa/sa12

[root@localhost beinan]# sadf  /var/log/sa/sa12

举例:我们想把sadc收集到的数据写到一个指定的文件中;

[root@localhost ~]# /usr/lib/sa/sadc  1 10 sa000

[root@localhost ~]# sar -f sa000

我们用sadc 收集系统动态数据,让它收集1秒之内的10次动态信息; 然后通过sar 工具来查看系统的状态。也可以用 sadf 来查看所收集的数据,但不是太直观。您自己尝试一下看看。查看sa000文件,用 sadf sa000 ;

sysstat安装包安装之后有iostat,mpstat,sar,sa功能

/etc/init.d/sysstat start

chkconfig sysstat on

sysstat工具包中包含两类工具

即时查看工具: iostat,mpstat,sar

累计统计工具:sar

sar是核心工具

mpstat 是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息

%user 用户CPU时间 ,不含nice时间

%nice nice值为负进程的CPU时间

%sys 系统内核时间

%iowait 硬盘I/O等待时间

%irq 软终端时间

%soft软终端时间

%steal

%idle CPU除去等待磁盘I/O操作外的空间闲置时间

CPU ALL总时间

sar功能

1、sar -u 1 5

输出CPU使用情况的统计信息,每秒输出一次,一共输出100次

17时06分01秒       CPU     %user     %nice   %system   %iowait     %idle

17时06分02秒       all      1.27      0.00      0.51      1.01     97.22

17时06分03秒       all      0.00      0.00      0.00      0.00    100.00

17时06分04秒       all      0.00      0.00      0.00      0.00    100.00

17时06分05秒       all      0.25      0.00      0.00      0.00     99.75

17时06分06秒       all      0.00      0.00      0.00      0.51     99.49

Average:          all      0.30      0.00      0.10      0.30     99.29

CPU      all 表示统计信息为所有 CPU 的平均值。

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

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

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

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

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

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

tips:

若 %iowait 的值过高,表示硬盘存在I/O瓶颈

若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量

若 %idle 的值持续低于 10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。

2、sar -b 1 5

显示I/O和传送速率的统计信息

17时09分07秒       tps      rtps      wtps   bread/s   bwrtn/s

17时09分08秒      3.12      3.12      0.00     25.00      0.00

17时09分09秒     89.58      6.25     83.33    141.67    733.33

17时09分10秒     42.71      9.38     33.33    141.67    600.00

17时09分11秒      2.11      2.11      0.00     16.84      0.00

17时09分12秒      1.04      0.00      1.04      0.00    175.00

Average:        27.77      4.18     23.59     65.14    302.30

tps     每秒钟物理设备的 I/O 传输总量

rtps    每秒钟从物理设备读入的数据总量

wtps    每秒钟向物理设备写入的数据总量

bread/s 每秒钟从物理设备读入的数据量,单位为 块/s

bwrtn/s 每秒钟向物理设备写入的数据量,单位为 块/s

3、sar -c

每秒钟创建的进程数

15时10分01秒      1.35

15时20分01秒      1.01

15时30分01秒      0.59

15时40分01秒      1.35

15时50分01秒      0.99

16时00分01秒      0.57

16时10分01秒      1.33

16时20分01秒      1.02

16时30分01秒      0.57

16时40分01秒      1.33

16时50分01秒      1.07

17时00分01秒      0.56

17时10分01秒      1.32

4、sar -n DEV 1 5

输出网络设备状态的统计信息

17时13分42秒     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s rxmcst/s

17时13分43秒      eth1   3669.70   4156.57 368362.63 2747714.14      0.00      0.00      0.00

17时13分44秒      eth1   2689.11   2585.15 289661.39 701461.39      0.00      0.00      0.00

17时13分45秒      eth1   3746.00   4077.00 415178.00 2605720.00      0.00      0.00      0.00

17时13分46秒      eth1   3096.00   3241.00 327916.00 1597320.00      0.00      0.00      0.00

17时13分47秒      eth1   2910.00   2834.00 312632.00 957903.00      0.00      0.00      0.00

Average:         eth1   3220.20   3375.60 342592.60 1717931.20      0.00      0.00      0.00

IFACE      网络设备名

rxpck/s    每秒接收的包总数

txpck/s    每秒传输的包总数

rxbyt/s    每秒接收的字节(byte)总数

txbyt/s    每秒传输的字节(byte)总数

rxcmp/s    每秒接收压缩包的总数

txcmp/s    每秒传输压缩包的总数

rxmcst/s   每秒接收的多播(multicast)包的总数

5、sar -q 1 5

输出进程队列长度和平均负载状态统计信息

17时16分28秒   runq-sz plist-sz   ldavg-1   ldavg-5 ldavg-15

17时16分29秒         0       160      0.26      0.11      0.03

17时16分30秒         0       160      0.26      0.11      0.03

17时16分31秒         0       160      0.24      0.11      0.03

17时16分32秒         0       160      0.24      0.11      0.03

17时16分33秒         0       160      0.24      0.11      0.03

Average:            0       160      0.25      0.11      0.03

runq-sz   运行队列的长度(等待运行的进程数)

plist-sz 进程列表中进程(processes)和线程(threads)的数量

ldavg-1   最后1分钟的系统平均负载(System load average)

ldavg-5   过去5分钟的系统平均负载

ldavg-15 过去15分钟的系统平均负载

6、sar -r

输出内存和交换空间的统计信息

iostat  显示一条包括所有的CPU和设备吞吐率的统计信息

常用选项

-c 仅显示CPU统计信息

-d 仅显示磁盘统计信息

-k 以KB显示每秒磁盘请求数

-m 以MB显示每秒磁盘请求数

-p 用于显示块设备以及系统分区的统计信息

tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请

求”。“一次传输”请求的大小是未知的。

kB_read/s:每秒从设备(drive expressed)读取的数据量;kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;kB_read:读取的总数据量;kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。

rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。

rsec/s:每秒读取的扇区数;wsec/:每秒写入的扇区数。r/s:The number of read requests that were issued to the device per second;w/s:The number of write requests that were issued to the device per second;

await:每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。

%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

常见用法:

$iostat -d -k 1 10 #查看TPS和吞吐量信息

iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)

iostat -c 1 10

iostat -d -x -l

磁盘的平均响应时间<5ms,磁盘使用率>80。磁盘响应正常,但是已经很繁忙了。

iostat -d 5  每隔五秒显示

1、关于 Sysstat;

Sysstat 是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于我们收集系统性能数据,比如CPU使用率、硬盘和网络吞吐数据,这些数据的收集和分析,有利于我们判断系统是否正常运行,是提高系统运行效率、安全运行服务器的得力助手;

Sysstat 软件包集成如下工具:

* iostat 工具提供CPU使用率及硬盘吞吐效率的数据;

* mpstat 工具提供单个处理器或多个处理器相关数据;

* sar 工具负责收集、报告并存储系统活跃的信息;

* sa1 工具负责收集并存储每天系统动态信息到一个二进制的文件中。它是通过计划任务工具cron来运行,

是为sadc所设计的程序前端程序;

* sa2 工具负责把每天的系统活跃性息写入总结性的报告中。它是为sar所设计的前端 ,要通过cron来调用

* sadc 是系统动态数据收集工具,收集的数据被写一个二进制的文件中,它被用作sar工具的后端;

* sadf 显示被sar通过多种格式收集的数据;

举例:我们想把sadc收集到的数据写到一个指定的文件中;

[root@localhost ~]# /usr/lib/sa/sadc  1 10 sa000

[root@localhost ~]# sar -f sa000

Linux 2.6.15-1.2054_FC5 (localhost.localdomain)         2006年05月12日

09时15分30秒       CPU     %user     %nice   %system   %iowait     %idle

09时15分31秒       all      3.00      0.00      0.00      1.00     96.00

09时15分32秒       all      0.00      0.00      0.00      0.00    100.00

09时15分33秒       all      0.00      0.00      0.00      0.00    100.00

09时15分34秒       all      0.00      0.00      0.00      0.00    100.00

09时15分35秒       all      0.00      0.00      0.00      0.00    100.00

09时15分36秒       all      0.00      0.00      0.00      0.00    100.00

09时15分37秒       all      0.00      0.00      0.00      0.00    100.00

09时15分38秒       all      0.00      0.00      0.00      0.00    100.00

09时15分39秒       all      0.00      0.00      0.00      0.00    100.00

Average:          all      0.33      0.00      0.00      0.11     99.56

注解:我们用sadc 收集系统动态数据,让它收集1秒之内的10次动态信息; 然后通过sar 工具来查看系统的状态。也可以用 sadf 来查看所收集的数据,但不是太直观。您自己尝试一下看看。查看sa000文件,用 sadf sa000 ;

3.2 sar 工具;

sar 工具比较强大,既能收集系统CPU、硬盘、动态数据,也能显示动态显示,更能查看二进制数据文件;sar 的应用比较多,而且也比较复杂,数据更为精确。我们只了解一下常用的内容就行,大多数内容我们了解就行;

用法:

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 命令,sar就是读取 /var/log/sa目录下最近系统状态文件。

[root@localhost ~]# sar

[root@localhost ~]# sar -A  注:读取/var/log/sa目录下所有文件数据;

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

[root@localhost ~]# sar -u  1 5

Linux 2.6.15-1.2054_FC5 (localhost.localdomain)         2006年05月12日

时间              CPU    利用率    nice值    系统占用    IO占用  空闲

11时19分34秒       CPU     %user     %nice   %system   %iowait     %idle

11时19分35秒       all      2.97      0.00      0.00      0.00     97.03

11时19分36秒       all     11.11      0.00      9.09      0.00     79.80

11时19分37秒       all     21.78      0.00      6.93      0.00     71.29

11时19分38秒       all     15.00      0.00      0.00      0.00     85.00

11时19分39秒       all      8.00      0.00      0.00      0.00     92.00

Average:          all     11.78      0.00      3.19      0.00     85.03

注解:

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

%user 表示CPU的利用率;

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

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

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

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

您可以CPU利用率的动态信息输出到一个文本文件中,然后通过more 来查看。

[root@localhost ~]# sar -u  1 5 > sar000.txt

[root@localhost ~]# more sar000.txt

也可以输出到一个二进制的文件中,然后通过sar来查看;

[root@localhost ~]# sar -u  1 5 -o sar002

[root@localhost ~]# sar -f sar002

注:如果您把数据通过-o filename 输出到一个二进制的文件中,是不能用文件内容查看工具more 、less或cat来查看的,应该用sar工具来查看,要加-f参数;

实例二:查看网络设备的吞吐情况;

比如我们让数据每秒更新一次,总共更新十次;

[root@localhost ~]# sar -n DEV  2 5

时间     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s

第一字段:时间;

IFACE:设备名;

rxpck/s:每秒收到的包;

rxbyt/s:每秒收到的所有包的体积;

txbyt/s:每秒传输的所有包的体积;

rxcmp/s:每秒收到数据切割压缩的包总数;

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

rxmcst/s: 每秒收到的多点传送的包;

如果我们从事提取eth0设备(也就是网卡eth0)的信息;我们应该用grep 来过滤。然后再显示出来;

[root@localhost ~]# sar -n DEV  2  5  |grep eth0

11时52分37秒      eth0  1.00  1.00   97.51   97.51   0.00    0.00      0.00

11时52分39秒      eth0  1.01  1.01   98.49   98.49   0.00    0.00      0.00

11时52分41秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00

11时52分43秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00

11时52分45秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00

Average:   eth0   1.00  1.00  98.00   98.00   0.00    0.00      0.00

如果想知道网络设备错误报告,也就就是用来查看设备故障的。应该用EDEV;比如下面的例子;

[root@localhost ~]# sar -n EDEV  2 5

3.3 iostat

iostat 是用来显示 系统即时系统,比如CPU使用率,硬盘设备的吞吐率;

[root@localhost ~]# iostat

Linux 2.6.15-1.2054_FC5 (localhost.localdomain)   2006年05月12日

avg-cpu:  %user   %nice %system %iowait   %idle

7.24    0.00    0.99    0.35   91.43

Device:   tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

hda      1.46        28.43        21.43     710589     535680

3.4 mpstat

mpstat 提供多处理器系统中的CPU的利用率的统计;

mpstat 也可以加参数,用-P来指定哪个 CPU,处理器的ID是从0开始的。

下面的例子是查看两个处理器,每二秒数据更新一次,总共要显示10次数据;

[root@localhost ~]# mpstat -P 0 2 10  注:查看第一个CPU

[root@localhost ~]# mpstat -p 1 2 10  注:查看第二个CPU

</code >

<code>

[root@localhost ~]# mpstat 2 10  注:查看所有CPU;

3.5 sdaf

sdaf 能从二进制文件中提取sar所收集的数据;这个大家知道就行了。显示的并不是友好的格式;

[root@localhost ~]# sar -u 2 5 -o sar003

[root@localhost ~]# sadf  sar003

相对来说,用sar来读取输出文件的内容更好;比如下面的;

[root@localhost ~]# sar -f sar003

4、 与Sysstat相似工具;

4.1 进程管理工具;

进程管理工具,包括ps 、pgrep、top、kill 、killall、pkill 等,请参考 《 Linux 进程管理》

4.2 内存使用率查看工具;

内存使用量 free

free 工具既能查看物理内存,也能查看虚拟内存的用量;

[root@localhost ~]# free

如果显示以单位M,则加-m参数;

[root@localhost ~]# free -m

total       used       free     shared    buffers     cached

Mem:           724        713         11          0         24        290

-/+ buffers/cache:        398        326

Swap:          800          0        800

vmstat 即时显示内存工具;

vmstat 是一个即时显示内存使用情况的工具;

vmstat 使用方法:

vmstat [-V] [-n] [delay [count]]

-V 显示vmstat的版本;

-n causes the headers not to be reprinted regularly.

-a 显示所有激活和未激活内存的状态;print inactive/active page stats.

-d 显示硬盘统计信息;prints disk statistics

-D 显示硬盘分区表;prints disk table

-p 显示硬盘分区读写状态等;prints disk partition statistics

-s 显示内存使用情况;prints vm table

-m prints slabinfo

-S 定义单位,k K

delay 是两次刷新时间间隔;

单位体积: k:1000 K:1024 m:1000000 M:1048576 (默认是 K)

count 刷新次数;

sar 工具;

sar 工具比较强大,既能收集系统CPU、硬盘、动态数据,也能显示动态显示,更能查看二进制数据文件;sar 的应用比较多,而且也比较复杂,数据更为精确。我们只了解一下常用的内容就行,大多数内容我们了解就行;

用法:

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自己的命令才能查看)。

保存为文本文件

结合上面的查看命令,加入 > filename 参数即可保存文本文件,下面列出几个有用的命令:

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文件中。

用WinSCP工具从Linux服务器上取下data.txt文件,内容如下:

11时04分05秒     CPU     %user     %nice   %system   %iowait    %steal     %idle

11时04分06秒     all      0.25      0.00      0.00      0.00      0.00     99.75

11时04分07秒     all      0.00      0.00      0.25      0.00      0.00     99.75

11时04分08秒     all      0.25      0.00      0.25      1.50      0.00     98.00

11时04分09秒     all      0.25      0.00      0.00      0.50      0.00     99.25

11时04分10秒     all      0.00      0.00      0.00      0.00      0.00    100.00

11时04分11秒     all      0.25      0.00      0.25      0.00      0.00     99.50

11时04分12秒     all      0.00      0.00      0.25      0.00      0.00     99.75

11时04分13秒     all      0.50      0.00      0.50      0.99      0.00     98.01

11时04分14秒     all      0.00      0.00      0.00      1.25      0.00     98.75

11时04分15秒     all      0.50      0.00      0.00      0.00      0.00     99.50

平均时间:     all      0.20      0.00      0.15      0.42      0.00     99.23

有了这份数据,就可以轻松的使用WPS表格来统计CPU的使用情况了。

保存为二进制文件

由于保存的二进制文件只有sar通过-f参数才能打开,不利于我们分析和统计数据,因此不推荐使用这个方法。保存二进制文件的参数是-o,如:

sar 1 5 -r -o data

//每隔1秒,写入5次,将内存使用的数据写入二进制文件data中。

sar -f data

//查看data文件

sar 应用举例;

查看CPU使用情况

sar 2 5

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

查看内存使用情况

sar -r 2 5

//每隔2秒,显示5次,内存使用的情况

实例一: 如果只用sar 命令,sar就是读取 /var/log/sa目录下最近系统状态文件。

[root@localhost ~]# sar

[root@localhost ~]# sar -A  注:读取/var/log/sa目录下所有文件数据;

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

[root@localhost ~]# sar -u  1 5

注解:

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

%user 表示CPU的利用率;

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

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

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

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

您可以CPU利用率的动态信息输出到一个文本文件中,然后通过more 来查看。

[root@localhost ~]# sar -u  1 5 > sar000.txt

[root@localhost ~]# more sar000.txt

也可以输出到一个二进制的文件中,然后通过sar来查看;

[root@localhost ~]# sar -u  1 5 -o sar002

[root@localhost ~]# sar -f sar002

注:如果您把数据通过-o filename 输出到一个二进制的文件中,是不能用文件内容查看工具more 、less或cat来查看的,应该用sar工具来查看,要加-f参数;

实例二:查看网络设备的吞吐情况;

比如我们让数据每秒更新一次,总共更新十次;

[root@localhost ~]# sar -n DEV  2 5

时 间     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s

第一字段:时间;IFACE:设备名;rxpck/s:每秒收到的包;rxbyt/s:每秒收到的所有包的体积;txbyt/s:每秒传输的所有包的体积;rxcmp/s:每秒收到数据切割压缩的包总数;txcmp/s :每秒传输的数据切割压缩的包的总数;rxmcst/s: 每秒收到的多点传送的包;

如果我们从事提取eth0设备(也就是网卡eth0)的信息;我们应该用grep 来过滤。然后再显示出来;

[root@localhost ~]# sar -n DEV  2  5  |grep eth0

11时52分37秒      eth0  1.00  1.00   97.51   97.51   0.00    0.00      0.00

11时52分39秒      eth0  1.01  1.01   98.49   98.49   0.00    0.00      0.00

11时52分41秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00

11时52分43秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00

11时52分45秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00

Average:   eth0   1.00  1.00  98.00   98.00   0.00    0.00      0.00

如果想知道网络设备错误报告,也就就是用来查看设备故障的。应该用EDEV;比如下面的例子;

[root@localhost ~]# sar -n EDEV  2 5

iostat

iostat 是用来显示 系统即时系统,比如CPU使用率,硬盘设备的吞吐率;

[root@localhost ~]# iostat

avg-cpu:  %user   %nice %system %iowait   %idle

7.24    0.00    0.99    0.35   91.43

Device:   tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

hda      1.46        28.43        21.43     710589     535680

mpstat

mpstat命令将会输出所有CPU的平均统计信息

mpstat 提供多处理器系统中的CPU的利用率的统计;mpstat 也可以加参数,用-P来指定哪个 CPU,处理器的ID是从0开始的。下面的例子是查看两个处理器,每二秒数据更新一次,总共要显示10次数据;

[root@localhost ~]# mpstat -P 0 2 10  注:查看第一个CPU

[root@localhost ~]# mpstat -p 1 2 10  注:查看第二个CPU

[root@localhost ~]# mpstat 2 10  注:查看所有CPU;

sdaf

sdaf 能从二进制文件中提取sar所收集的数据;这个大家知道就行了。显示的并不是友好的格式;

[root@localhost ~]# sar -u 2 5 -o sar003

[root@localhost ~]# sadf  sar003

相对来说,用sar来读取输出文件的内容更好;比如下面的;

[root@localhost ~]# sar -f sar003

进程管理工具,包括ps 、pgrep、top、kill 、killall、pkill

vmstat 即时显示内存工具;

vmstat 是一个即时显示内存使用情况的工具;

vmstat 使用方法:

vmstat [-V] [-n] [delay [count]]

-V 显示vmstat的版本;

-n causes the headers not to be reprinted regularly.

-a 显示所有激活和未激活内存的状态;print inactive/active page stats.

-d 显示硬盘统计信息;prints disk statistics

-D 显示硬盘分区表;prints disk table

-p 显示硬盘分区读写状态等;prints disk partition statistics

-s 显示内存使用情况;prints vm table

-m prints slabinfo

-S 定义单位,k K

delay 是两次刷新时间间隔;

单位体积: k:1000 K:1024 m:1000000 M:1048576 (默认是 K)

count 刷新次数;

使用pidstat命令监视进程,pidstat命令没有保存性能数据的功能。

pidstat 2 5

//每隔2秒,显示5次,所有活动进程的CPU使用情况

pidstat -p 3132 2 5

//每隔2秒,显示5次,PID为1643的进程的CPU使用情况显示

pidstat -p 3132 2 5 -r

//每隔2秒,显示5次,PID为1643的进程的内存使用情况显示

使用yum安装

#yum install sysstat

sysstat的安装包是:sysstat-9.0.4-31.el6.x86_64 ; 包含的功能:iostat、mpstat、sar、sa

MPSTAT

MPSTAT -P ALL 2 3

mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不 但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。下面只介绍 mpstat与CPU相关的参数,mpstat的语法如下:

mpstat [-P {|ALL}] [internal [count]]

参数的含义如下:

参数 解释

-P {|ALL} 表示监控哪个CPU, cpu在[0,cpu个数-1]中取值

internal 相邻的两次采样的间隔时间

count 采样的次数,count只能和delay一起使用

当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有interval时,第 一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。与CPU有关的输出的含义如下:

参数 解释 从/proc/stat获得数据

CPU 处理器ID

user 在internal时间段里,用户态的CPU时间(%) ,不包含 nice值为负 进程 usr/total*100

nice 在internal时间段里,nice值为负进程的CPU时间(%) nice/total*100

system 在internal时间段里,核心时间(%) system/total*100

iowait 在internal时间段里,硬盘IO等待时间(%) iowait/total*100

irq 在internal时间段里,软中断时间(%) irq/total*100

soft 在internal时间段里,软中断时间(%) softirq/total*100

idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间 (%) idle/total*100

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

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时间前的值。上表中的所有值可取到两位小数点。

cat /proc/stat

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

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

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

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

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

============================

sysstat工具包提供的主要命令:iostat mpstat sar

sar的最后两个参数一般是interval count

1、sar -u 1 3

输出CPU使用情况的统计信息,每秒输出一次,一共输出3次

[root@localhost ~]# sar -u 1 3

Linux 2.6.32-431.el6.x86_64 (localhost)  2016年11月03日  _x86_64_ (48 CPU)

13时41分45秒     CPU     %user     %nice   %system   %iowait    %steal     %idle

13时41分46秒     all      4.43      0.00      0.23      1.19      0.00     94.15

13时41分47秒     all      5.12      0.00      0.23      0.38      0.00     94.28

13时41分48秒     all      4.82      0.00      0.23      0.00      0.00     94.95

平均时间:     all      4.79      0.00      0.23      0.52      0.00     94.46

CPU      all 表示统计信息为所有 CPU 的平均值。

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

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

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

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

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

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

tips:

若 %iowait 的值过高,表示硬盘存在I/O瓶颈

若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量

若 %idle 的值持续低于 10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。

2、sar -b 1 5

显示I/O和传送速率的统计信息

17时09分07秒       tps      rtps      wtps   bread/s   bwrtn/s

17时09分08秒      3.12      3.12      0.00     25.00      0.00

17时09分09秒     89.58      6.25     83.33    141.67    733.33

17时09分10秒     42.71      9.38     33.33    141.67    600.00

17时09分11秒      2.11      2.11      0.00     16.84      0.00

17时09分12秒      1.04      0.00      1.04      0.00    175.00

Average:        27.77      4.18     23.59     65.14    302.30

tps     每秒钟物理设备的 I/O 传输总量

rtps    每秒钟从物理设备读入的数据总量

wtps    每秒钟向物理设备写入的数据总量

bread/s 每秒钟从物理设备读入的数据量,单位为 块/s

bwrtn/s 每秒钟向物理设备写入的数据量,单位为 块/s

4、sar -n DEV 1 5

输出网络设备状态的统计信息

17时13分42秒     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s rxmcst/s

17时13分43秒      eth1   3669.70   4156.57 368362.63 2747714.14      0.00      0.00      0.00

17时13分44秒      eth1   2689.11   2585.15 289661.39 701461.39      0.00      0.00      0.00

17时13分45秒      eth1   3746.00   4077.00 415178.00 2605720.00      0.00      0.00      0.00

17时13分46秒      eth1   3096.00   3241.00 327916.00 1597320.00      0.00      0.00      0.00

17时13分47秒      eth1   2910.00   2834.00 312632.00 957903.00      0.00      0.00      0.00

Average:         eth1   3220.20   3375.60 342592.60 1717931.20      0.00      0.00      0.00

IFACE      网络设备名

rxpck/s    每秒接收的包总数

txpck/s    每秒传输的包总数

rxbyt/s    每秒接收的字节(byte)总数

txbyt/s    每秒传输的字节(byte)总数

rxcmp/s    每秒接收压缩包的总数

txcmp/s    每秒传输压缩包的总数

rxmcst/s   每秒接收的多播(multicast)包的总数

5、sar -q 1 5

输出进程队列长度和平均负载状态统计信息

17时16分28秒   runq-sz plist-sz   ldavg-1   ldavg-5 ldavg-15

17时16分29秒         0       160      0.26      0.11      0.03

17时16分30秒         0       160      0.26      0.11      0.03

17时16分31秒         0       160      0.24      0.11      0.03

17时16分32秒         0       160      0.24      0.11      0.03

17时16分33秒         0       160      0.24      0.11      0.03

Average:            0       160      0.25      0.11      0.03

runq-sz   运行队列的长度(等待运行的进程数)

plist-sz 进程列表中进程(processes)和线程(threads)的数量

ldavg-1   最后1分钟的系统平均负载(System load average)

ldavg-5   过去5分钟的系统平均负载

ldavg-15 过去15分钟的系统平均负载

6、sar -r

输出内存和交换空间的统计信息

7、iostat

tps 每秒钟物理设备的 I/O 传输总量。

Blk_read 读入的数据总量,单位为 块。

Blk_wrtn 写入的数据总量,单位为 块。

kB_read 读入的数据总量,单位为 KB。

kB_wrtn 写入的数据总量,单位为 KB。

MB_read 读入的数据总量,单位为 MB。

MB_wrtn 写入的数据总量,单位为 MB。

Blk_read/s 每秒从驱动器读入的数据量,单位为 块 /s。

Blk_wrtn/s 每秒向驱动器写入的数据量,单位为 块 /s。

kB_read/s 每秒从驱动器读入的数据量,单位为 KB/s。

kB_wrtn/s 每秒向驱动器写入的数据量,单位为 KB/s。

MB_read/s 每秒从驱动器读入的数据量,单位为 MB/s。

MB_wrtn/s 每秒向驱动器写入的数据量,单位为MB/s。

rrqm/s 将读入请求合并后,每秒发送到设备的读入请求数。

wrqm/s 将写入请求合并后,每秒发送到设备的写入请求数。

r/s 每秒发送到设备的读入请求 数。

w/s 每秒发送到设备的写入请求 数。

rsec/s 每秒从设备读入的扇区 数。

wsec/s 每秒向设备写入的扇区 数。

rkB/s 每秒从设备读入的数据量,单位为 KB/s。

wkB/s 每秒向设备写入的数据量,单位为 KB/s。

rMB/s 每秒从设备读入的数据量,单位为 MB/s。

wMB/s 每秒向设备写入的数据量,单位为 MB/s。

avgrq-sz 发送到设备的请求的平均大小,单位为扇 区。

avgqu-sz 发送到设备的请求的平均队列长 度。

await I/O请求平均执行时间。包括发送请求和执行的时间。单位为毫 秒。

svctm 发送到设备的I/O请求的平均执行时间。单位为毫 秒。

%util 在I/O请求发送到设备期间,占用CPU时间的百分比。用于显示设备的带宽利用率。当这个值接近100%时,表示设备带宽已经占满。

Sysstat的工具集sar、 iostat、mpstat、sadf、sar、sadc的更多相关文章

  1. linux 安装sysstat使用iostat、mpstat、sar、sa(转载)

    使用yum安装 #yum install sysstat sysstat的安装包是:sysstat-5.0.5-1.i386.rpm,装完了sysstat-5.0.5-1.i386.rpm后 就会有i ...

  2. iostat,mpstat,sar即时查看工具,sar累计查看工具

    iostat,mpstat,sar即时查看工具,sar累计查看工具

  3. linux 安装sysstat使用iostat、mpstat、sar、sa

    使用yum安装 #yum install sysstat sysstat的安装包是:sysstat-5.0.5-1.i386.rpm,装完了sysstat-5.0.5-1.i386.rpm后 就会有i ...

  4. Linux 监测磁盘常用的工具sar iostat vmstat

    Linux 检测内存常用的工具sar iostat vmstat #每秒刷新一次显示2次 sar -d 1 2 iostat -kx 1 2 vmstat -d 1 2 磁盘统计信息解释 tps 每秒 ...

  5. 使用 vmstat, mpstat 和 sar 查看系统运行参数

    vmstat 字段含义 Procs r: The number of processes waiting for run time. 等待执行的进程, 数字越大意味着CPU越忙, 果该数字经常大于逻辑 ...

  6. 价值1400美元的CEH(道德黑客)认证培训课程长啥样?(3)工具集

    美元的CEH(道德黑客)认证培训课程长啥样?(3)工具集 这是我收到的CEH官方发来的邮件,参加CEH认证培训原价为1424.25刀,可以给我便宜到1282刀.只有一个感觉,心在流血.站在这价值120 ...

  7. Apache Commons 工具集

    一.Commons BeanUtils http://jakarta.apache.org/commons/beanutils/index.html 说明:针对Bean的一个工具集.由于Bean往往是 ...

  8. kali linux 渗透测试视频教程 第五课 社会工程学工具集

    第五课 社会工程学工具集 文/玄魂 教程地址:http://edu.51cto.com/course/course_id-1887.html   目录 第五课社会工程学工具集 SET SET的社会工程 ...

  9. 如何判断平台工具集去做条件编译(VC++目录、预处理器定义、$(PlatformToolsetVersion))

    作者:zyl910 从VS2010开始,提供了一个平台工作集(Platform ToolSet)选项用于配制vc编译版本.到了VS2012,更是因为默认平台工具集不支持WindowsXP,导致经常需要 ...

随机推荐

  1. Django开发密码管理表实例【附源码】

    文章及代码比较基础,适合初.中级人员,高手略过 阅读此篇文章你可以: 获取一个Django实现增删改查的案例源码 了解数据加密的使用场景和方法以及如何在Python3中使用 背景介绍 DBA需要维护一 ...

  2. ActiveMQ——activemq的使用java代码实例(精选)

    ActiveMQ 在java中的使用,通过单例模式.工厂实现 Jms规范里的两种message传输方式Topic和Queue,两者的对比如下表():   Topic Queue 概要 Publish  ...

  3. JAVA里的VO、BO、PO分别指什么?

    VO(value object) 值对象 通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已.但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象 ...

  4. Druid链接池配置加密密码链接数据库

    Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB ...

  5. 移动端常见bug汇总001

    点击样式闪动 Q: 当你点击一个链接或者通过Javascript定义的可点击元素的时候,它就会出现一个半透明的灰色背景. A:根本原因是-webkit-tap-highlight-color,这个属性 ...

  6. JSON跨域解决方案收集

    最近面试问的挺多的一个问题,就是JavaScript的跨域问题.在这里,对跨域的一些方法做个总结.由于浏览器的同源策略,不同域名.不同端口.不同协议都会构成跨域:但在实际的业务中,很多场景需要进行跨域 ...

  7. asp.net的get和post请求

    asp.net的get和post请求 //获取第三方api的工具类 public class HttpUtils { public static string Get(string Url) { // ...

  8. 15.C++-操作符重载、并实现复数类

    首先回忆下以前学的函数重载 函数重载 函数重载的本质为相互独立的不同函数 通过函数名和函数参数来确定函数调用 无法直接通过函数名得到重载函数的入口地址 函数重载必然发生在同一个作用域中 类中的函数重载 ...

  9. 数据操作语句(DML)

    增加(插入)数据 SQL>insert into 表名 values(值1,值2 /*根据表中的字段顺序和字段类型相应填写*/); SQL>commit; (提交,提交了别的人才看看到这个 ...

  10. 用Dreamweaver离线编写WordPress文章

    WordPress 自带的编辑器功能较弱,也不支持离线写文章.Windows Live Writer功能还行,不过早就停止更新了.如何能够找到一个功能强大的,可以离线编辑文章的WordPress文章编 ...