您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux

Linux下sysstat安装使用图文详解

时间:2019-08-28 15:34:27  来源:  作者:

Sysstat,目前已经发布最新的12.1.6版本,Sysstat是一种在linux系统服务器中常用的软件工具包,可以用来监控服务器的性能。比如可以监控CPU、硬盘、网络等数据,我们可以用来进行分析服务器的性能和资源的使用效率。我们将在在这篇文章中学习、使用Sysstat监控工具包的安装和常用命令。

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

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

Linux下sysstat安装使用图文详解

Linux下Sysstat性能监控工具的安装

目前主流的Linux系统里都自带有sysstat的集成包

1、Ubuntu下安装方法见 sysstat 12.1.3 发布这篇文章  https://www.linuxidc.com/Linux/2019-02/156951.htm

或者 apt-get install sysstat

2、Git安装包安装

yum install -y git
git clone git://github.com/sysstat/sysstat
cd sysstat
./configure
make &&make install

CentOS/Red Hat平台下我们可以通过下列命令安装:

yum -y install sysstat

3、检查是否成功(截止2019年8月15日,sysstat 最新版本为12.1.6),安装完毕之后,用命令检查是否可以看到当前版本。

linuxidc@linuxidc:~/www.linuxidc.com$ sar -V
sysstat 版本 12.1.6
(C) Sebastien Godard (sysstat <at> orange.fr)

如下图:

Linux下sysstat安装使用图文详解

看到上图,就表示Sysstat安装成功。

Linux下sysstat使用方法:

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)的统计信息

主要说明其所包含的工具sadc、sdaf、sar、iostat、mpstat的用法。

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

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

间隔 s          次数                输出文件

1、iostat

linuxidc@linuxidc:~/www.linuxidc.com$ iostat --help
用法: iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]
选项:
[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -s ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ --dec={ 0 | 1 | 2 } ] [ --human ] [ -o JSON ]
[ [ -H ] -g <用户组名> ] [ -p [ <设备> [,...] | ALL ] ]
[ <设备> [...] | ALL ]

如下图:

Linux下sysstat安装使用图文详解

参数释义:

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

示例:

linuxidc@linuxidc:~/www.linuxidc.com$ iostat -c 1 3
Linux 5.2.5-050205-generic (linuxidc)     08/15/2019     _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.28    0.07    5.65    9.88    0.00   80.12

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           6.78    0.00   27.97    0.00    0.00   65.25

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.00    0.00    4.00    0.00    0.00   94.00

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

linuxidc@linuxidc:~/www.linuxidc.com$ iostat -x
Linux 5.2.5-050205-generic (linuxidc)  08/15/2019  _x86_64_ (1 CPU)

avg-cpu:  %user  %nice %system %iowait  %steal  %idle
          4.25    0.07    5.53    9.61    0.00  80.55

如下图:

Linux下sysstat安装使用图文详解

说明:

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

2、mpstat

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

linuxidc@linuxidc:~/www.linuxidc.com$ mpstat --help
用法: mpstat [ 选项 ] [ <时间间���> [ <次数> ] ]
选项:
[ -I { SUM | CPU | SCPU | ALL } ] [ -N { <node_list> | ALL } ]
[ --dec={ 0 | 1 | 2 } ] [ -o JSON ] [ -P { <CPU_列表> | ALL } ]

mpstat

linuxidc@linuxidc:~/www.linuxidc.com$ mpstat -P 0 1 2

mpstat

说明:

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

3、sadc

sadc 位于/usr/local/lib/sa/目录中(Ubuntu 18.04 LTS),如果你没有设置可执行路径,要用绝对路径来运行。

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

linuxidc@linuxidc:~/www.linuxidc.com$ /usr/local/lib/sa/sadc --help
用法: /usr/local/lib/sa/sadc [ 选项 ] [ <时间间隔> [ <次数> ] ] [ <输出文件> ]
选项:
[ -C <注释> ] [ -D ] [ -F ] [ -f ] [ -L ] [ -V ]
[ -S { INT | DISK | IPV6 | POWER | SNMP | XDISK | ALL | XALL } ]

如下图:

Linux下sysstat安装使用图文详解

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

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

Linux下sysstat安装使用图文详解

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

linuxidc@linuxidc:~/www.linuxidc.com$ ll /var/log/sa/
总用量 12
drwxr-xr-x  2 root root  4096 Aug 15 01:54 ./
drwxrwxr-x 18 root syslog 4096 Aug 15 01:26 ../
-rw-r--r--  1 root root  1064 Aug 15 02:42 sa15
linuxidc@linuxidc:~/www.linuxidc.com$ sadf /var/log/sa/sa15
linuxidc -1 2019-08-15 06:54:24 UTC LINUX-RESTART (1 CPU)
linuxidc -1 2019-08-15 07:20:40 UTC LINUX-RESTART (1 CPU)
linuxidc -1 2019-08-15 07:42:44 UTC LINUX-RESTART (1 CPU)

如下图:

sadc

4、sadf

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

linuxidc@linuxidc:~/www.linuxidc.com$ sadf --help
用法: sadf [ 选项 ] [ <时间间隔> [ <次数> ] ] [ <数据文件> | -[0-9]+ ]
选项:
[ -C ] [ -c | -d | -g | -j | -l | -p | -r | -x ] [ -H ] [ -h ] [ -T | -t | -U ] [ -V ]
[ -O <选项> [,...] ] [ -P { <cpu> [,...] | ALL } ]
[ --dev=<设备列表> ] [ --fs=<文件系统列表> ] [ --iface=<iface_列表> ]
[ -s [ <时:分[:秒]> ] ] [ -e [ <时:分[:秒]> ] ]
[ -- <sar_选项> ]

如下图:

Linux下sysstat安装使用图文详解

5、sar

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

linuxidc@linuxidc:~/www.linuxidc.com$ sar --help
用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
主要选项和报告(报告名以方括号分隔):
 -B 分页状况 [A_PAGE]
 -b I/O 和传输速率信息状况 [A_IO]
 -d 块设备状况 [A_DISK]
 -F [ MOUNT ]
  文件系统统计信息 [A_FS]
 -H 巨大页面利用率 [A_HUGE]
 -I { <中断列表> | SUM | ALL }
  中断信息状况 [A_IRQ]
 -m { <关键字> [,...] | ALL }
  电源管理统计信息 [A_PWR_...]
  关键字:
  CPU CPU 瞬时时钟频率
  FAN 风扇速度
......

如下图:

Linux下sysstat安装使用图文详解

参数说明:

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

linuxidc@linuxidc:~/www.linuxidc.com$ sar -u 1 5
Linux 5.2.5-050205-generic (linuxidc)     08/15/2019     _x86_64_    (1 CPU)

02:57:46 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
02:57:47 AM     all      0.00      0.00      2.04      0.00      0.00     97.96
02:57:48 AM     all      8.25      0.00      5.15      0.00      0.00     86.60
02:57:49 AM     all      2.08      0.00      0.00      0.00      0.00     97.92
02:57:50 AM     all     27.27      0.00     12.12      0.00      0.00     60.61
02:57:51 AM     all     44.58      0.00     16.87      0.00      0.00     38.55
平均时间:     all     15.64      0.00      6.98      0.00      0.00     77.38

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

linuxidc@linuxidc:~/www.linuxidc.com$ sar -n DEV 2 4

如下图:

sar

参数释义:

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

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

linuxidc@linuxidc:~/www.linuxidc.com$ sudo /usr/local/lib/sa/sadc -
[sudo] linuxidc 的密码: 
linuxidc@linuxidc:~/www.linuxidc.com$ /usr/local/lib/sa/sadc 1 10 sa000
linuxidc@linuxidc:~/www.linuxidc.com$ sar -f sa000
Linux 5.2.5-050205-generic (linuxidc)  08/15/2019  _x86_64_ (1 CPU)

01:55:04 AM    CPU    %user    %nice  %system  %iowait    %steal    %idle
01:55:07 AM    all    24.77      0.00    75.23      0.00      0.00      0.00
01:55:08 AM    all    30.00      0.00    70.00      0.00      0.00      0.00
01:55:09 AM    all    16.67      0.00    83.33      0.00      0.00      0.00
01:55:10 AM    all    26.67      0.00    73.33      0.00      0.00      0.00
01:55:11 AM    all    19.35      0.00    80.65      0.00      0.00      0.00
01:55:12 AM    all    25.81      0.00    74.19      0.00      0.00      0.00
01:55:13 AM    all    16.67      0.00    33.33    50.00      0.00      0.00
01:55:14 AM    all    18.18      0.00    28.57    53.25      0.00      0.00
01:55:15 AM    all    22.86      0.00    38.57    38.57      0.00      0.00
平均时间:    all    22.11      0.00    57.02    20.87      0.00      0.00

Linux下sysstat安装使用图文详解

6、pidstat

linuxidc@linuxidc:~/www.linuxidc.com$ pidstat --help
用法:pidstat [ 选项 ] [ <时间间隔> [ <计数> ] ] [ -e <程序> <参数> ]
选项:
[ -d ] [ -H ] [ -h ] [ -I ] [ -l ] [ -R ] [ -r ] [ -s ] [ -t ] [ -U [ <用户名> ] ]
[ -u ] [ -V ] [ -v ] [ -w ] [ -C <命令> ] [ -G <进程名> ]
[ -p { <pid> [,...] | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]
[ --dec={ 0 | 1 | 2 } ] [ --human ]

如下图:

Linux下sysstat安装使用图文详解

linuxidc@linuxidc:~/www.linuxidc.com$ pidstat -dl

Linux下sysstat安装使用图文详解

 



Tags:Linux sysstat   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Sysstat,目前已经发布最新的12.1.6版本,Sysstat是一种在Linux系统服务器中常用的软件工具包,可以用来监控服务器的性能。比如可以监控CPU、硬盘、网络等数据,我们可以用来进行分...【详细内容】
2019-08-28  Tags: Linux sysstat  点击:(234)  评论:(0)  加入收藏
▌简易百科推荐
作用显示文件或目录所占用的磁盘空间使用命令格式du [option] 文件/目录命令功能显示文件或目录所占用的磁盘空间一些写法的区别du -sh xxx 显示总目录的大小,但是不会列出...【详细内容】
2021-12-23  mitsuhide1992    Tags:du命令   点击:(12)  评论:(0)  加入收藏
什么是linux内核linux就像是一个哲学的最佳实践。如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪地说着:“linux的美丽简直让人沉醉。”我只能说是我处在linux学习的修炼...【详细内容】
2021-12-23  linux上的码农    Tags:linux内核   点击:(15)  评论:(0)  加入收藏
本文将比较 Linux 中 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 service服务(dae...【详细内容】
2021-12-23  软件架构    Tags:systemctl   点击:(14)  评论:(0)  加入收藏
mv是move的缩写,可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。命令格式mv [选项] 源文件或者目录 目标文件或者目录命令功能mv命令中第二个参数类型的不同(...【详细内容】
2021-12-17  入门小站    Tags:mv命令   点击:(23)  评论:(0)  加入收藏
大数据技术AI Flink/Spark/Hadoop/数仓,数据分析、面试,源码解读等干货学习资料 98篇原创内容 -->公众号 Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处...【详细内容】
2021-12-17  仙风道骨的宝石骑士    Tags:sed命令   点击:(22)  评论:(0)  加入收藏
Node是个啥?  写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性地拿了下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段...【详细内容】
2021-12-15  linux上的码农    Tags:node   点击:(25)  评论:(0)  加入收藏
难道只有我一个人觉得Ubuntu的unity桌面非常好用吗?最近把台式机上面的Ubuntu 16.04格式化了,装了黑苹果用了一周,不得不说,MacOS确实很精美,软件生态比Linux丰富很多,比Windows简...【详细内容】
2021-12-14  地球末日村    Tags:ubuntu   点击:(41)  评论:(0)  加入收藏
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行net...【详细内容】
2021-12-13  窥镜天    Tags:Linux netstat   点击:(28)  评论:(0)  加入收藏
对于较多数量的文件描述符的监听无论是select还是poll系统调用都显得捉襟见肘,poll每次都需要将所有的文件描述符复制到内核,内核本身不会对这些文件描述符加以保存,这样的设计...【详细内容】
2021-12-13  深度Linux    Tags:Linux   点击:(19)  评论:(0)  加入收藏
今天,我们来了解下 Linux 系统的革命性通用执行引擎-eBPF,之所以聊着玩意,因为它确实牛逼,作为一项底层技术,在现在的云原生生态领域中起着举足轻重的作用。截至目前,业界使用范...【详细内容】
2021-12-10  架构驿站    Tags:eBPF   点击:(29)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条