Linux下,我们多用ssh链接服务器远程操控。对于系统的监控必不可少,sysstat很不错的监控工具包。

sysstat官网:http://sebastien.godard.pagesperso-orange.fr/

sysstat托管代码:https://github.com/sysstat/sysstat

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

sysstat工具包包含工具:

◆iostat 工具提供CPU使用率及硬盘吞吐效率的数据;  #比较核心的工具

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

◆pidstat: 关于运行中的进程/任务、CPU、内存等的统计信息

◆sar 工具负责收集、报告并存储系统活跃的信息;     #统计数据的核心工具

◆sa1 工具负责收集并存储每天系统动态信息到一个二进制的文件中。它是通过计划任务工具cron来运行,是为sadc所设计的程序前端程序;

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

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

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

◆nfsiostat: NFS(Network File System)的I/O统计信息。

◆cifsiostat: CIFS(Common Internet File System)的统计信息

目前主流的linux系统里都自带有sysstat的集成包,在常用的centos/redhat平台下我们可以通过下列命令安装:

yum -y install sysstat

在Debian、ubuntu或deb软件包为基础的系统下,我们可以通过:

apt-get install sysstat

当然,我们也可以通过源码包安装。可以通过rpm -ql  sysstat命令查看具体所安装的文件和位置:

[root@jiao ~]# rpm -ql sysstat
/etc/cron.d/sysstat        #计划任务
/etc/rc.d/init.d/sysstat
/etc/sysconfig/sysstat
/etc/sysconfig/sysstat.ioconf
/usr/bin/cifsiostat        #网络文件统计
/usr/bin/iostat
/usr/bin/mpstat
/usr/bin/pidstat
/usr/bin/sadf
/usr/bin/sar
/usr/lib64/sa
/usr/lib64/sa/sa1
/usr/lib64/sa/sa2
/usr/lib64/sa/sadc       #数据写入中间省略/var/log/sa           #默认统计信息保存的位置

查看命令的参数:  xxx --help

[ <interval> [ <count> ] ] [ <outfile> ]

    间隔 s          次数                 输出文件

01、iostat


[root@jiao ~]# iostat --help
Usage: iostat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]  
[ -j { ID | LABEL | PATH | UUID | ... } [ <device> [...] | ALL ] ]
[ <device> [...] | ALL ] [ -p [ <device> [,...] | ALL ] ]

参数释义:

-c : 仅显示cpu的状态
-d : 仅显示存储设备的状态,不可以和-c一起使用
-k :默认显示的是读入读出的block信息,用-k可以改成KB大小来显示 -m
-t  : 显示日期
-p device | ALL :
device为某个设备或者某个分区,如果使用ALL,就表示要显示所有分区和设备的信息
-x 显示扩展状态,显示出更多内容

exp

[root@jiao ~]# iostat -x Linux 2.6.32-431.el6.x86_64 (jiao)  09/30/2016  _x86_64_ (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle            0.08    0.00    0.26    0.53    0.00   99.13

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util sda

4.04     0.56    1.52    0.35    66.17     7.30    39.34     0.05   25.43   3.41   0.64

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.  #CPU空闲等待时间

02、mpstat


mpstat 用于多处理器系统中的CPU的利用率的统计。细化到具体某个cpu的状态时可以使用参数-P,处理器的ID从0开始

[root@jiao ~]# mpstat --help
Usage: mpstat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -A ] [ -I { SUM | CPU | ALL } ] [ -u ]
[ -P { <cpu> [,...] | ON | ALL } ] [ -V ]

[root@jiao ~]# mpstat -P 0 1 3
Linux 2.6.32-431.el6.x86_64 (jiao)     09/30/2016     _x86_64_    (1 CPU)03:35:38 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
03:35:39 AM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
03:35:40 AM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
03:35:41 AM    0    0.00    0.00    0.99    0.00    0.00    0.00    0.00    0.00   99.01
Average:       0    0.00    0.00    0.33    0.00    0.00    0.00    0.00    0.00   99.67

%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接收的中断的次数。

03、pidstat


[root@jiao ~]# pidstat --help
Usage: pidstat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -C <command> ] [ -d ] [ -h ] [ -I ] [ -l ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]
[ -p { <pid> [,...] | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]

[root@jiao ~]# pidstat -dl
Linux 2.6.32-431.el6.x86_64 (jiao)     09/30/2016     _x86_64_    (1 CPU)03:40:26 AM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
03:40:26 AM         1     19.83      1.96      0.01  /sbin/init
03:40:26 AM       242      0.00      0.23      0.00  jbd2/sda5-8
03:40:26 AM       313      2.10      0.00      0.00  /sbin/udevd -d
03:40:26 AM       552      0.12      0.00      0.00  /sbin/udevd -d
03:40:26 AM       563      0.11      0.00      0.00  /sbin/udevd -d
03:40:26 AM       823      0.00      0.03      0.00  auditd
03:40:26 AM       839      0.12      0.05      0.00  /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
03:40:26 AM       883      0.00      0.00      0.00  /usr/sbin/sshd
03:40:26 AM       960      0.20      0.00      0.00  /usr/libexec/postfix/master
03:40:26 AM       968      0.07      0.00      0.00  pickup -l -t fifo -u
03:40:26 AM       969      0.10      0.00      0.00  qmgr -l -t fifo -u
03:40:26 AM       970      0.05      0.01      0.00  crond
03:40:26 AM       983      0.01      0.00      0.00  /sbin/mingetty /dev/tty1
03:40:26 AM       985      0.00      0.00      0.00  /sbin/mingetty /dev/tty2
03:40:26 AM       994      0.10      0.00      0.00  sshd: root@pts/0
03:40:26 AM       996      0.13      0.00      0.00  -bash
03:40:26 AM      1025      0.04      0.01      0.00  /usr/sbin/anacron -s 

04、sabc


sadc 位于 /usr/lib/sa目录中,64位系统在:/usr/lib64/sa目录中,如果你没有设置可执行路径,要用绝对路径来运行。

sdac准备的说只是一个搜集写入工具,并不直接回显于屏幕上。sadc 是把数据写在一个二进制的文件中,如果想查看数据内容,需要用sadf工具来显示。

[root@jiao ~]# /usr/lib64/sa/sadc --help
Usage: /usr/lib64/sa/sadc [ options ] [ <interval> [ <count> ] ] [ <outfile> ]
Options are:
[ -C <comment> ] [ -F ] [ -L ] [ -V ]
[ -S { INT | DISK | IPV6 | POWER | SNMP | XDISK | ALL | XALL } ]

注意:此工具中的参数都是可选的,如果没有指定任何参数

比如 /usr/lib64/sa/sadc - (后面的“-”是必须的,少了会出乱码和报错),则会输出数据到 /var/log/sa/目录下的一个文件中。

要通过sadf 或sar工具来查看。

[root@jiao ~]# /usr/lib64/sa/sadc -
[root@jiao ~]# ll /var/log/sa/
total 40
-rw-r--r-- 1 root root 34472 Sep 30 03:50 sa30
[root@jiao ~]# sadf /var/log/sa/sa30
jiao    599    1475167801    all    %user    0.01
jiao    599    1475167801    all    %nice    0.00
jiao    599    1475167801    all    %system    0.07
jiao    599    1475167801    all    %iowait    0.02
jiao    599    1475167801    all    %steal    0.00
jiao    599    1475167801    all    %idle    99.90
jiao    -1    1475168236    LINUX-RESTART
jiao    600    1475169001    all    %user    0.01
jiao    600    1475169001    all    %nice    0.00
jiao    600    1475169001    all    %system    0.10
jiao    600    1475169001    all    %iowait    0.04
jiao    600    1475169001    all    %steal    0.00
jiao    600    1475169001    all    %idle    99.85
jiao    599    1475169601    all    %user    0.01
jiao    599    1475169601    all    %nice    0.00
jiao    599    1475169601    all    %system    0.06
jiao    599    1475169601    all    %iowait    0.00
jiao    599    1475169601    all    %steal    0.00
jiao    599    1475169601    all    %idle    99.93

05、sadf


sdaf 能从二进制文件中提取sar所收集的数据;显示的格式不如sar直观,其主要用于导出为csv、xml等格式的文件,方便导入数据库或excel等程序.

[root@jiao ~]# sadf --help
Usage: sadf [ options ] [ <interval> [ <count> ] ] [ <datafile> ]
Options are:
[ -d | -D | -H | -p | -x ] [ -h ] [ -t ] [ -V ]
[ -P { <cpu> [,...] | ALL } ] [ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ]
[ -- <sar_options> ]

06、sar


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

[root@jiao ~]# sar --help
Usage: sar [ options ] [ <interval> [ <count> ] ]
Options are:
[ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -m ] [ -p ] [ -q ] [ -r ] [ -R ]
[ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]
[ -I { <int> [,...] | SUM | ALL | XALL } ] [ -P { <cpu> [,...] | ALL } ]
[ -j { ID | LABEL | PATH | UUID | ... } ] [ -n { <keyword> [,...] | ALL } ]
[ -o [ <filename> ] | -f [ <filename> ] ] [ --legacy ]
[ -i <interval> ] [ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ]

参数说明:

-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目录下所有文件数据。

sar -u 1 3

[root@jiao ~]# sar -u 1 3    #sar -u 1 3 -o cpu.dat   #sar -f cpu.dat 查看信息
Linux 2.6.32-431.el6.x86_64 (jiao)     09/30/2016     _x86_64_    (1 CPU)04:03:00 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
04:03:01 AM     all      0.00      0.00      1.00      0.00      0.00     99.00
04:03:02 AM     all      0.00      1.01      2.02      5.05      0.00     91.92
04:03:03 AM     all      0.00      0.00      2.00      0.00      0.00     98.00
Average:        all      0.00      0.33      1.67      1.67      0.00     96.32

sar -n DEV 2 4  #查看网络设备的网络吞吐量

[root@jiao ~]# sar -n DEV 2 4
Linux 2.6.32-431.el6.x86_64 (jiao)     09/30/2016     _x86_64_    (1 CPU)04:06:58 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
04:07:00 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:07:00 AM      eth0      0.50      0.00      0.03      0.00      0.00      0.00      0.0004:07:00 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
04:07:02 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:07:02 AM      eth0      0.50      0.50      0.03      0.19      0.00      0.00      0.0004:07:02 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
04:07:04 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:07:04 AM      eth0      0.50      0.50      0.03      0.19      0.00      0.00      0.0004:07:04 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
04:07:06 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:07:06 AM      eth0      0.50      0.50      0.03      0.19      0.00      0.00      0.00Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         eth0      0.50      0.38      0.03      0.14      0.00      0.00      0.00

参数释义:

IFACE:设备名;
rxpck/s:每秒收到的包;
rxbyt/s:每秒收到的所有包的数量 ;
txbyt/s:每秒发送的所有包的数量 ;
txbyt/s:每秒发送的所有包的大小;
rxcmp/s:每秒收到数的据压缩包的数量;
txcmp/s :每秒传输的数据压缩包的数据;
rxmcst/s: 每秒收到的多播的包数量;

想获取某块网卡的流量情况,我们可以使用grep过滤。  #sar -n DEV 2 4 | grep eth0

sar -b 1 4

[root@jiao ~]# sar -b 1 4
Linux 2.6.32-431.el6.x86_64 (jiao)     09/30/2016     _x86_64_    (1 CPU)04:11:30 AM       tps      rtps      wtps   bread/s   bwrtn/s
04:11:31 AM      0.00      0.00      0.00      0.00      0.00
04:11:32 AM      0.00      0.00      0.00      0.00      0.00
04:11:33 AM      0.00      0.00      0.00      0.00      0.00
04:11:34 AM      0.00      0.00      0.00      0.00      0.00
Average:         0.00      0.00      0.00      0.00      0.00

引荐:http://www.361way.com/sysstat/1508.html

转载于:https://www.cnblogs.com/xiaochina/p/5920854.html

Linux下sysstat工具学习相关推荐

  1. Linux下sysstat安装使用图文详解

    文章目录 Linux下sysstat安装使用图文详解 1.iostat 2.mpstat 3.sadc 4.sadf 5.sar 6.pidstat Linux下sysstat安装使用图文详解 Sys ...

  2. 详解linux下auto工具制作Makefile源码包(制作篇)

    2019独角兽企业重金招聘Python工程师标准>>> 详解linux下auto工具制作Makefile源码包(制作篇) 水木杨 一.     概述 为了更好的制作configure ...

  3. 实验 Linux下C工具应用

    实验报告 实 验(一) 题     目 Linux下C工具应用 专       业 计算机科学与技术 计算机科学与技术学院 目  录 第1章 实验基本信息... - 4 - 1.1 实验目的... - ...

  4. 万得终端 linux安装,Linux下常用工具

    Linux下常用工具: yuv rgba playerubuntu 18.04 wps1 2sudo dpkg -i wps-office_10.1.0.5672~a21_amd64.deb sudo ...

  5. 模仿实现Linux下readelf工具部分功能

    模仿实现Linux下 readelfreadelfreadelf 工具部分功能 完整实现: https://github.com/JiaZhengJingXianSheng/ReadELF ELF 目 ...

  6. Linux下抓图工具shutter

    Linux下抓图工具shutter 转载于:https://www.cnblogs.com/zhangze/archive/2013/06/07/3123558.html

  7. 利用Linux下DDOS工具tfn2k进行DDOS攻击试验

    "Tribe Flood Network 2000 (TFN2K)是一款分布式拒绝服务(DDOS)的攻击工具.TFN2K是由德国著名黑客Mixter编写的同类攻击工具TFN的后续版本.本文将 ...

  8. LINUX下的makefile学习(此文是我学习过程遇到问题时找到的所有回答,感谢其它大佬的回答,各个文章我都标明了原文链接)

    看视频学习截图: 针对上面情况就使用makefile工程管理 内容一行写不完,加上'\' : CC=gcc2 CFLAGS=-Wall -std=gnu993 #CFLAGS=-Wall -std=g ...

  9. Linux下常用软件,Linux下开发工具下载地址

    1.RAR 3.60 for Linux 软件说明:流行好用的压缩工具,支持鼠标拖放及外壳扩展,完美支持 ZIP 档案,内置程序可以解开 CAB.ARJ.LZH.TAR.GZ.ACE.UUE.BZ2. ...

最新文章

  1. Android性能优化之运算篇
  2. android应用的构成组件
  3. 【Android 高性能音频】OboeTest 音频性能测试应用 ( 应用简介 | 测试内容 | 输出测试 | Oboe 缓冲区 与 工作负载修改 | 测试案例 )
  4. 【专访】PP租车孙览江:与有梦想的人一拍即合,PM都有改变世界的小情怀
  5. 在C#中使用SQLite
  6. 参加kaggle比赛
  7. 透视转换oracle,使用Oracle的行列转化函数实现ASH的数据透视功能
  8. JavaScript进制之间的转换
  9. Kaggle入门——使用scikit-learn解决DigitRecognition问题
  10. 技术交底书(二)-----一种基于移动终端的安全防护系统
  11. tiny4412移植U-Boot 2020.07
  12. Java调用IE浏览器
  13. 如何撰写和发表SCI论文
  14. C语言的奇技淫巧(1-50)
  15. Altium_Designer不规则焊盘制作
  16. nyoj 月老的难题【最大匹配】
  17. sepic电路MATLAB,Sepic电路建模、仿真设计(最终版)
  18. Richard Matthew Stallman和GNU
  19. 亲身经历:3天解决网站被百度网址安全中心拦截的方法
  20. 红旗 linux 4.4系统安装,红旗Linux6.0 SP1桌面版安装 xfce 4.4.3 的方法

热门文章

  1. AHK Msg相关语法、参数详解,设置Msg弹窗自动关闭
  2. 2020年基金从业资格证考试该怎么考?怎么复习?
  3. indesign里怎么打根号_排版中黄金比例、白银比例是什么意思?
  4. 常见的亮灭屏流程分析
  5. pandas - merge 函数
  6. 负载均衡的常见几种算法
  7. openstack 命令行管理一 - br-ex 网络设定 (备忘)
  8. c++ 数值转string。使用ostringstream流以及模板类
  9. 从脑白金到征途上市 史玉柱就是个赌徒
  10. 你的游戏账号被盗了!16万任天堂账号被盗,如何保护账号安全?