文章目录

  • Linux下sysstat安装使用图文详解
    • 1、iostat
    • 2、mpstat
    • 3、sadc
    • 4、sadf
    • 5、sar
    • 6、pidstat

Linux下sysstat安装使用图文详解

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

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

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

1、Ubuntu下安装方法
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
© Sebastien Godard (sysstat orange.fr)

如下图:
看到上图,就表示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 ]

如下图:
参数释义:

-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   %idle4.28    0.07    5.65    9.88    0.00   80.12avg-cpu:  %user   %nice %system %iowait  %steal   %idle6.78    0.00   27.97    0.00    0.00   65.25avg-cpu:  %user   %nice %system %iowait  %steal   %idle2.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  %idle4.25    0.07    5.53    9.61    0.00  80.55

如下图:


说明:

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 } ]

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


说明:

%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 } ]

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

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


要通过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)

如下图:

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_选项> ]

如下图:

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 风扇速度

如下图:
参数说明:

-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

如下图:
参数释义:

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

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 { [,…] | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]
[ --dec={ 0 | 1 | 2 } ] [ --human ]

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

Linux下sysstat安装使用图文详解相关推荐

  1. Ubuntu Linux 软件寻找/安装/卸载 图文详解教程

    作为一个桌面操作系统,Ubuntu(以后我简称为UB)自然也和Windows一样,拥有众多的实用软件,让我们平常来使用.很多新手,在安装了Ubuntu系统后,面对着与众不同的桌面,不知道该如何安装软件 ...

  2. Linux下MongoDB安装和配置详解

    一.创建MongoDB的安装路径 在/usr/local/  创建文件夹mongoDB mkdir mongoDB 二.上传文件到Linux上的/usr/local/source目录下 1. 我首先在 ...

  3. linux 查看mongodb 目录,Linux下MongoDB安装和配置详解

    MongoDB官网: MongoDB学习网站: 一.创建MongoDB的资源目录和安装路径 mkdir -p /usr/local/source mongoDB 二. 上传文件位于Linux操作系统上 ...

  4. ubuntu 安裝deb_.deb文件如何安装,Ubuntu下deb安装方法图文详解

    deb包是Debian,Ubuntu等Linux发行版的软件安装包,扩展名为.deb,是类似于rpm的软件包,Debian,Ubuntu系统不推荐使用deb软件包,因为要解决软件包依赖问题,安装也比较 ...

  5. linux下如何配置svn,Linux下SVN安装与配置详解

    一.前言 SVN服务器有两种运行方式: 1.独立服务器: 2.借助apache: 两种方式各有利弊,独立SVN服务器不结合Apache安装使用,连接独立SVN服务器也不用HTTP协议. 这是比较快捷的 ...

  6. ubuntu如何安装java jdk,Ubuntu下安装JDK图文详解

    很详细的在Ubuntu中安装JDK图文详解教程,我们选择的是jdk1.6.0_30版本.安装文件名为jdk-6u30-linux-i586.bin. 1.复制jdk到安装目录 (1)假设jdk安装文件 ...

  7. mysql8.0.20 64位安装教程_windows 64位下MySQL 8.0.15安装教程图文详解

    先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置系统环境变量 复制解压后的mysql到C盘或者其他磁盘下 我们去系统的环境变量的path里添加一个mysql的配置  指向my ...

  8. mysql 8.064位安装_windows64位下MySQL8.0.15安装教程图文详解

    先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置系统环境变量 复制解压后的mysql到C盘或者其他磁盘下 我们去系统的环境变量的path里添加一个mysql的配置  指向my ...

  9. Linux下的samba服务配置详解

    Linux下的samba服务配置详解 一.Samba介绍 二.Samba工具及特性 三.搭建环境介绍 四.Samba配置步骤 1.服务端操作 2.在客户端操作 五.测试用户的权限情况 一.Samba介 ...

最新文章

  1. linux 命令行叫dos,利用shell编程实现DOS风格的Linux命令行
  2. Android Binder IPC机制
  3. 使用Sentinel配置Redis 3.x主从高可用服务
  4. 自定义ChannelHandler 的添加过程
  5. 往远程mysql传数据库_三、Navicat将远程MySql数据库数据导入本地
  6. 超级计算机预测2月有雪寒潮,干寒潮后,雪寒潮还要来?超级计算机:不确定性很大,需密切观察...
  7. Hadoop伪分布安装配置
  8. Activiti(6.0)任务管理服务TaskaskService
  9. Xcode9 无线连接真机调试
  10. 【Filter】基础知识
  11. 【理论】浅解硬件网络通信+交换机芯片+通信系统设计
  12. 最小二乘法原理-线性回归
  13. Spark综合学习笔记(五)SparkStreaming介绍
  14. 刚刚地震了,怎么办?
  15. cf英文名字格式好看的_格式好看的cf英语名字【三篇】
  16. Unity为人物模型 添加动效Animator
  17. 服务器电脑用哪个系统好,电脑系统哪个好用?电脑系统有几种版本
  18. 排水沟槽开挖土方的计算方法(平行相似梯形组成的六面体体积分割计算方法)
  19. 信号处理系列之限幅器(Limiter_FC)
  20. 用R语言绘制ROC曲线

热门文章

  1. 塔望食品品牌策划:中国植物肉市场品牌总结分析及盘点
  2. 在你的机器上实现杜比耳机系统
  3. 2022年3月17日美国Embarcadero公司正式发布 RAD Studio Delphi 11.1 Alexandria
  4. Python编程|手把手教植物大战僵尸,代码开源
  5. HBase案例 | 20000个分区导致HBase集群宕机事故处理
  6. 【操作系统】虚拟页和物理页
  7. Plant Simulation、NX MCD、PDPS,SIMIT,PLCSIM仿真与虚拟调试合集(持续更新中)
  8. 中国35所大学开设人工智能专业,日本人都怕了!
  9. 关于慕课网上爱心小鱼的讲解
  10. AFL查看crash文件