一、概述sar(System Activity Reporter)是Linux下系统运行状态的统计工具,可以从多个方面报告系统活动,包括文件读写、系统调用使用、磁盘I/O、CPU效率、内存使用、进程活动和IPC相关活动。他是个多才多艺的小专家。
二、在ubuntu安装下:
root@ubuntu:/home/peng# apt-get安装sysstat
root@ubuntu:/home/peng# sar -r
无法打开/var/log/sysstat/sa07:没有这样的文件或目录
请检查是否启用了数据收集
执行后,您将遇到以下错误。sa07中的07是今天的日期,因为文件尚未创建。解决方案:
root @ Ubuntu:/home/Peng # chmod o w/etc/default/sysstat
root @ Ubuntu:/home/Peng # vim/etc/default/sysstat
三、命令语法
Type是我们想要获取什么样的指标数据,其中-n代表监控一些网络信息。
-a:文件的阅读和书写
-A:所有报告的总和。
-B:寻呼状态
-b:显示I/O和传输速率的统计数据。
-c:输出进程统计信息,即每秒创建的进程数。
-d:闭塞设备的状况
-f [mount]:文件系统统计信息
-H:交换空间利用率
-I {《中断》 | SUM | ALL | XALL}:中断信息状态。
-n:报告网络情况
-P:设置CPU。
-q:队列长度和平均负载
-R:输出内存页面的统计信息。
-r [all]:输出内存和交换空间的统计信息。
-S:交换空间利用率信息
-u [all]:输出CPU使用率的统计信息。
-v:inode、文件和其他内核表的输出统计信息。
-W:输出系统交换活动信息。
-w:任务创建和系统转换信息
-y:终端设备活动
类型参数有些类型有参数,有些没有。这里的DEV代表监控网卡信息。
间隔每个报告的时间间隔(秒)
频率
报告显示的次数。例如,如果时间间隔为2,采样次数为3,则sar命令将阻塞12秒。
帮助
root @ Ubuntu:/home/Peng # sar-help
用法:sar [选项] [ 《interval》 [ 《count》 ] ]
选项包括:
[-A][-B][-B][-C][-D][-D][-F[MOUNT]][-H][-H]
[ -p ] [ -q ] [ -R ] [ -r [全部] ] [ -S ] [ -t ] [ -u [全部] ] [ -V ]
[ -v ] [ -W ] [ -w ] [ -y ] [ - sadc ]
我不知道该怎么做.]| SUM | ALL | XALL }][-P { 《int》[,] |全部} ]
我不知道该怎么做.] |全部} ] [ -n { 《cpu》 [,] |全部} ]
[ -j { ID | LABEL | PATH | UUID | .} ]
[-f[《keyword》]|-o[《keyword》]-[0-9]]
[-I 《filename》][-s[《filename》]][-e[《interval》]]
四、比如Linux下的资源监控主要有以下几种:磁盘、CPU、网络、内存、IO等。
1.cpu信息我们先从CPU信息说起。作为计算机的大脑,作为指挥官,我们应该监控它的一举一动。其实对CPU的监控有三种:利用率、负载、中断。
(1)CPU利用率
使用sar -u,我们来看看它的实现结果。你可以看到每种类型的用法和top命令中的意思是一样的。
root@ubuntu:/home/peng# sar -u 1 1
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
0509AM CPU % user % nice % system % iowait % steal %空闲
上午5时10分所有1.01 0.00 2.02 0.00 0.00 96.97
平均值:所有1.01 0.00 2.02 0.00 0.00 96.97
字段描述
%user #用户空间的CPU使用率
优先级已更改的进程的CPU利用率百分比。
%系统内核空间的CPU使用率
% I等待等待IO的CPU的百分比。
%steal虚拟机的虚拟机CPU使用的CPU
空闲CPU百分比
在上面的显示中,我们主要看%iowait和%idle。如果%iowait过高,说明存在I/O瓶颈,即磁盘IO无法满足业务需求。如果%idle过低,说明CPU利用率严重,需要结合内存使用情况判断CPU是否是瓶颈。
(2)报告每个CPU的使用状态:
root@ubuntu:/home/peng# sar -p 1 3
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
0521AM CPU % user % nice % system % iowait % steal % idle
上午5时22分所有1.00 0.00 0.00 0.00 0.00 0.00 99.00
上午0523全部1.02 0.00 0.00 0.00 0.00 0.00 98.98
上午5时24分所有1.01 0.00 1.01 0.00 0.00 97.98
平均值:所有1.01 0.00 0.34 0.00 0.00 98.65
字段描述
CPU:所有CPU的统计数据
%user用户模式的CPU使用率统计信息
优先级已更改的进程的CPU使用率统计信息百分比。
% I等待等待IO数据的CPU的百分比。
%steal虚拟机的vCPU占用的物理CPU的百分比。
%空闲CPU的空闲百分比
(3)3)CPU负载使用sar -q,类似于top的参数含义。除了负载值,它还显示等待队列的长度,这对于排除排队问题非常有帮助。
root@ubuntu:/home/peng# sar -q 1 1
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
上午05:20 runq-SZ plist-SZ LD avg-1 LD avg-5 LD avg-15受阻
上午0521 0 440 0.01 0.02 0.00 0
平均值:0 440 0.01 0.02 0.00 0
字段描述
runq-sz运行队列的长度(等待运行的进程数,每个内核的CP不能超过3)
plist-sz进程列表中的进程和线程数。
最后一分钟的平均CPU负载ldavg-1,即把过去一分钟的多核CPU负载加起来除以核数得到的平均值,以此类推5分钟,15分钟。
ldavg-5最后5分钟的平均CPU负载
ldavg-15最后15分钟的平均CPU负载
(4)中断
使用sar -I,注意I是大写的。由于转换方式不同,中断的参数分为default、SUM、ALL等。
root @ Ubuntu:/home/Peng # sar-I SUM 1 2
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
上午5时01分INTR国际机场
0502 AM sum 250.52
0503 AM sum 338.38
平均值:总和294.90
(5)语境转换
使用sar -w,它经常与监视交换分区使用情况的sar -W(区分大小写)混淆,所以要注意。
root@ubuntu:/home/peng# sar -w 1
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
上午5时53分
上午0.00 433.67
上午0.00 734.38
上午0.00 582.65
上午0.00 886.46
2.内存信息
记忆主要分为以下几个部分。我们平时监控的主要是物理内存、虚拟内存和内核。
(1)内存利用率
使用sar -r命令。有些sar版本可能有sar -R,但一般小写就够了。
root@ubuntu:/home/peng# sar -r 1 1
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
0554AM kb mem free kb memused % memused kb buffers kb cached kb commit % commit kb active kb inact kb dirty
上午0555 281108 1736408 86.07 109040 675176 3345488 110.93 730964 591392 0
平均值:281108 1736408 86.07 109040 675176 3345488 110.93 730964 591392 0
字段描述
Kbmemfree:可用的空闲内存大小。
Kbmemused:使用的内存大小(不包括内核使用的内存)
遗忘百分比:已用内存的百分比。
Kbbuffers:内核缓冲区使用的内存大小。
Kbcached:内核缓存数据使用的内存大小。
Kbswpfree:可用交换空间的大小。
Kbswpused:已用交换空间大小。
% swpusused:已用交换空间的百分比。
Kbswpcad:交换空间缓存使用的内存大小。
Kbcommit保证当前系统正常运行所需的最小内存,即保证内存不溢出所需的最小内存(物理内存交换分区)。
提交的值是kbcommit和总内存(物理内存交换分区)的百分比。
(2)交换分区
对于交换分区,可以使用sar -S。效果如下。如果您想查看交换分区的使用情况(非容量),您必须切换到sar -W命令。
root@ubuntu:/home/peng# sar -S 1 1
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
0515AM kbswpfree kbswpused % swpused kbswpcad % swpcad
上午0516 962556 35840 3.59 2808 7.83
平均值:962556 35840 3.59 2808 7.83
(3)内核使用
主要使用sar -v命令。v一般用于其他命令中的版本显示,sar命令用于slab区输出一些信息,可以说是特立独行,不走寻常路。
root@ubuntu:/home/peng# sar -v 1
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
上午0546 dentunusd文件-nr信息节点-nr pty-nr
上午0547 471836816 53938 17
上午0548 471836816 53938 17
字段描述
缓冲区目录条目中dentunusd未使用的条目数。
系统使用的文件句柄数量。
inode-nr使用的索引数
Pty-nr使用的pty数量
(4)监控内存分页信息,主要通过使用sar -B命令。注意他的发音!非常牛逼!实施结果如下:
root@ubuntu:/home/peng# sar -B
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
0134 AM LINUX重启(1个CPU)
0101AM PGP in/s PGP out/s fault/s maj FLT/s pg free/s pgs cank/s pgs cand/s pgsteal/s % VM eff
0201上午0.00 0.29 23.98 0.00 10.50 0.00 0.00 0.00 0.00 0.00 0.00
0201上午0.00 0.23 1.03 0.00 1.90 0.00 0.00 0.00 0.00 0.00 0.00
0201上午0.00 0.47 1.73 0.00 2.71 0.00 0.00 0.00 0.00 0.00
(5)查看系统交换分区的统计信息:
root@ubuntu:/home/peng# sar -W
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
0134 AM LINUX重启(1个CPU)
0101AM PSW pin/s PSW out/s
0201上午0.00 0.00
0201上午0.00 0.00
0201上午0.00 0.00
0201上午0.00 0.00
0201上午0.00 0.00
0201上午0.00 0.00
字段描述
每秒从交换分区到系统的交换页数。
每秒通过pswpout从系统交换到交换的交换页数。
(6)检查I/O和传输速率的统计数据。
root@ubuntu:/home/peng# sar -b
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
0134 AM LINUX重启(1个CPU)
上午01时01分tps rtps wtps面包/秒BWR TN/秒
0201上午0.04 0.00 0.04 0.00 0.59
0201上午0.03 0.00 0.03 0.00 0.47
字段描述
tps磁盘每秒的总IO等于iostat中的tps。
每秒rtps从磁盘读取的IO总数。
每秒从WTP写入磁盘的IO总数。
每秒钟从磁盘读取的总块数。
bwrtn/s每秒写入磁盘的总块数。
(7)磁盘使用明细统计
root@ubuntu:/home/peng# sar -d
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
0134 AM LINUX重启(1个CPU)
0101AM DEV TPS rd _ sec/s wr _ sec/s avgrq-SZ avgqu-SZ wait SVC TM % util
0201 AM设备7-0 0.00 0.00 0.00 0.00 0.00
上午02:01设备8-0 0.04 0.00 0.59 13.54 0.00 0.00 0.00 0.00 0.00
字段描述
DEV磁盘设备的名称。如果不加-p,会显示类似dev253-0的设备名称,所以加-p显示的名称更直接。
Tps:每秒I/O传输的总数。
rd_sec/s每秒读取的扇区总数。
每秒写入的扇区总数。
Avgrq-sz每个辅助磁盘I/O操作的平均数据大小(扇区)。
avgqu-sz磁盘请求队列的平均长度。
Await每个请求的平均消耗时间,包括请求队列的等待时间,是毫秒(1秒等于1000毫秒),等于寻道时间、排队时间和服务时间。
svctm I/O的服务处理时间,即不包括请求队列中的时间。
% util I/O请求占用CPU的百分比。该值越高,I/O越慢。
3.I/O信息IO信息监控也是一个响亮的sar -b,只是这里的B变成了小写。
root@ubuntu:/home/peng# sar -b 1 2
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
上午5时22分tps rtps wtps面包/秒BWR TN/秒
上午0.00 0.00 0.00 0.00 0.00 0.00 0.00
上午2.06 0.00 2.06 0.00 65.98
平均值:1.02 0.00 1.02 0.00 32.65
字段描述
tps磁盘每秒的总IO等于iostat中的tps。
每秒rtps从磁盘读取的IO总数。
每秒从WTP写入磁盘的IO总数。
每秒钟从磁盘读取的总块数。
bwrtn/s每秒写入磁盘的总块数。
Sar -d命令与iostat命令非常相似,结果更多。
root@ubuntu:/home/peng# sar -d 1
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
0503AM DEV TPS rd _ sec/s wr _ sec/s avgrq-SZ avgqu-SZ wait SVC TM % util
上午05时04分设备7-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
上午0504 dev 8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
字段描述
DEV磁盘设备的名称。如果不加-p,会显示类似dev253-0的设备名称,所以加-p显示的名称更直接。
Tps:每秒I/O传输的总数。
rd_sec/s每秒读取的扇区总数。
每秒写入的扇区总数。
Avgrq-sz每个辅助磁盘I/O操作的平均数据大小(扇区)。
avgqu-sz磁盘请求队列的平均长度。
Await每个请求的平均消耗时间,包括请求队列的等待时间,是毫秒(1秒等于1000毫秒),等于寻道时间、排队时间和服务时间。
svctm I/O的服务处理时间,即不包括请求队列中的时间。
% util I/O请求占用CPU的百分比。该值越高,I/O越慢。
4.网络信息(1)统计网络信息
sar -n
接下来,我们看看最复杂的网络信息。之所以复杂,是因为它有很多参数,比如上面提到的DEV,就是网络流量。
可怕的是,这些参数的每一次输出都不一样。可能26个字母涵盖不了这么多参数,所以sar命令把它加在了sar -n N下面,好在我们平时用的时候,只能处理DEV参数。
#sar -n选项使用六种不同的开关:DEV、EDEV、NFS、NFSD、SOCK、IP、EIP、ICMP、EICMP、TCP、ETCP、UDP、SOCK6、IP6、EIP6、ICMP6、EICMP6和UDP6。戴夫显示网络接口信息,EDEV显示网络错误的统计数据,NFS统计活动。它们可以单独使用,也可以一起使用。
(2)每1秒统计一次,共1次。
root @ Ubuntu:/home/Peng # sar-n DEV 1 1
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
0536AM IFACE rxpck/s txp CK/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s % ifutil
上午5时37分en s33 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0537AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均值:IFACE rxpck/s tx PCK/s rxkB/s txkB/s rxcmp/s tx CMP/s rxmcst/s % ifutil
平均值:ens 33 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均值:lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
字段描述下面的平均值是多次统计后的平均值。
IFACE本地网卡接口的名称。
rxpck每秒接受的数据包数
每秒通过txpck发送的数据库
每秒rxKB/S接受的数据包大小,以KB为单位。
每秒的数据包大小,以KB为单位。
rxcmp/s每秒接受的压缩数据包。
txcmp/s每秒发送的压缩数据包
RXCST/s每秒接收的多播数据包。
(3)网络设备通信故障信息的统计:
root @ Ubuntu:/home/Peng # sar-n 1 1
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
0522AM I face rx err/s tx err/s coll/s rx drop/s tx drop/s tx carr/s rx fram/s rx FIFO/s tx FIFO/s
上午5时23分en s33 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0523AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
average:I face rx err/s tx err/s coll/s rx drop/s tx drop/s tx carr/s rx fram/s rx FIFO/s tx FIFO/s
平均值:ens 33 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均值:lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
字段描述
IFACE网卡名称
rxerr/s每秒接收的损坏的数据包。
txerr/s每秒发送的数据包错误数。
Coll/s发送数据包时每秒的冲突数,仅在半双工模式下可用。
Rxdrop/s当缓冲区已满时,网卡设备的接收端每秒丢弃的网络数据包的数量。
Txdrop/s当缓冲区已满时,网络设备发送方每秒丢弃的网络数据包数。
Txcarr/s发送数据包时每秒的载波错误数。
rxfram接收数据包时每秒的帧间错误数。
rxfifo接收数据包时每秒的缓冲区溢出错误数。
当txfifo中出现数据包时,每秒发生缓冲区溢出错误的次数。
(4)统计套接字连接信息
root @ Ubuntu:/home/Peng # sar-n SOCK 1 1
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
上午05:21 tot sck tcpsck UDP sck raw sck IP-frag TCP-tw
上午1393 2 6 0 0 0
平均值:1393 2 6 0 0 0
字段描述
totsck当前使用的套接字总数。
tcpsck当前使用的TCP套接字的总数。
udpsck当前使用的UDP套接字的总数。
RAWsck当前用于raw的skcket总数。
Ip-frag当前Ip碎片的数量。
处于时间等待状态的tcp-tw TCP套接字中的连接数。
使用FULL关键字相当于上面提到的DEV、EDEV和SOCK的合成。
(TCP连接的统计
root @ Ubuntu:/home/Peng # sar-n TCP 1 3
Linux 4 . 15 . 0-112-通用(Ubuntu)2021年7月3日_x86_64_ (1个CPU)
上午5时05分主动/被动/被动
上午0.00 0.00 0.00 0.00
上午0.00 0.00 0.00 0.00
上午0.00 0.00 0.00 0.00
平均值:0.00 0.00 0.00 0.00
字段描述
活动/s新的活动连接
被动/s新的被动连接
Iseg/s接受段
输出段
(6)SAR-N使用概述
开发网络接口统计
EDEV网络接口错误
NFS NFS客户
NFSD NFS服务器
SOCK Sockets (v4)插座用法
IP IP流(v4) IP数据报统计
EIP IP流(v4)(错误)IP错误统计
ICMP ICMP流(v4)
EICMP ICMP流(v4)(错误)
TCP TCP流(v4) TCP统计
ETCP TCP流(v4)(错误)TCP错误统计
UDP UDP流(v4)
SOCK6插座(v6)
IP6 IP流量(v6)
EIP6 IP流(v6)(错误)
ICMP6 ICMP流(v6)
EICMP6 ICMP流(v6)(错误)
UDP6 UDP流(v6)
五、ksarKsar可用于分析系统性能数据。它的优点是不需要单独收集性能数据。系统自带sar包,Ksar可以通过命令转换显示。
要安装这个软件,需要先安装java。如果已经安装,请转到步骤5。
下载java
解压
把复制到ubuntu的/home/peng/jdk下。
塔尔-zxvf jdk-8u202-linux-x64.tar.gz
3.设置环境变量
$sudo vim /etc/profile
在文件末尾增加以下内容
28 #设置java环境
29导出JAVA _ HOME=/HOME/Peng/JDK/JDK 1 . 8 . 0 _ 202
30导出JRE_HOME=${JAVA_HOME}/jre
31导出类路径=.$ { JAVA _ HOME }/lib:$ { JRE _ HOME }/lib
32导出路径=${JAVA_HOME}/bin:$PATH
使环境变量有效
$sudo source /etc/profile
测试java
Java版本是1.8.0_202。
5.下载ksar源代码
wget http://jaist . dl . SourceForge . net/project/ksar/ksar/5 . 0 . 6/ksar-5 . 0 . 6 . zip
解压缩ksar-5.0.6.zip
然后解压并输入源代码的根目录来执行脚本:
sh run.sh
这个软件可以启动。
ksar
6.操作
执行命令,点击数据-》运行本地命令。
您可以执行以下命令:
合成孔径雷达
单击相应的硬件信息,以图形形式查看相应的硬件信息内容。非常直观方便。
原标题:查看硬件信息的Linux超级命令sar和可视化工具ksar。
文章来源:【微信微信官方账号:FPGA之家】欢迎添加关注!请注明文章出处。