Linux监控命令Sar详解

简介

sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。本文主要以CentOS 6.3 x64系统为例,介绍sar命令。

sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。

语法

sar(选项)(参数)

选项

-A:显示所有的报告信息;
-b:显示I/O速率;
-B:显示换页状态;
-c:显示进程创建活动;
-d:显示每个块设备的状态;
-e:设置显示报告的结束时间;
-f:从指定文件提取报告;
-i:设状态信息刷新的间隔时间;
-P:报告每个CPU的状态;
-R:显示内存状态;
-u:显示CPU利用率;
-v:显示索引节点,文件和其他内核表的状态;
-w:显示交换分区状态;
-x:显示给定进程的状态。

参数

  • 间隔时间:每次报告的间隔时间(秒);
  • 次数:显示报告的次数。

实操

[root@VM-0-15-centos ~]# sar -n DEV 1
-bash: sar: command not found
[root@VM-0-15-centos ~]# yum install sysstat  
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
epel                                                                                              | 4.7 kB  00:00:00     
extras                                                                                            | 2.9 kB  00:00:00     
os                                                                                                | 3.6 kB  00:00:00     
updates                                                                                           | 2.9 kB  00:00:00     
(1/5): extras/7/x86_64/primary_db                                                                 | 222 kB  00:00:00     
(2/5): epel/7/x86_64/updateinfo                                                                   | 1.0 MB  00:00:00     
(3/5): updates/7/x86_64/primary_db                                                                | 3.7 MB  00:00:01     
(4/5): os/7/x86_64/primary_db                                                                     | 6.1 MB  00:00:01     
(5/5): epel/7/x86_64/primary_db                                                                   | 6.9 MB  00:00:01     
Resolving Dependencies
--> Running transaction check
---> Package sysstat.x86_64 0:10.1.5-19.el7 will be installed
--> Processing Dependency: libsensors.so.4()(64bit) for package: sysstat-10.1.5-19.el7.x86_64
--> Running transaction check
---> Package lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================================================
 Package                       Arch                 Version                                       Repository        Size
=========================================================================================================================
Installing:
 sysstat                       x86_64               10.1.5-19.el7                                 os               315 k
Installing for dependencies:
 lm_sensors-libs               x86_64               3.4.0-8.20160601gitf9185e5.el7                os                42 k

Transaction Summary
=========================================================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 357 k
Installed size: 1.2 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64.rpm                                  |  42 kB  00:00:00     
(2/2): sysstat-10.1.5-19.el7.x86_64.rpm                                                           | 315 kB  00:00:00     
-------------------------------------------------------------------------------------------------------------------------
Total                                                                                    798 kB/s | 357 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64                                                 1/2 
  Installing : sysstat-10.1.5-19.el7.x86_64                                                                          2/2 
  Verifying  : sysstat-10.1.5-19.el7.x86_64                                                                          1/2 
  Verifying  : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64                                                 2/2 

Installed:
  sysstat.x86_64 0:10.1.5-19.el7                                                                                         

Dependency Installed:
  lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7                                                                

Complete!
[root@VM-0-15-centos ~]# sar -n DEV 1
Linux 3.10.0-862.el7.x86_64 (VM-0-15-centos) 	12/11/2020 	_x86_64_	(1 CPU)

11:53:58 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
11:53:59 PM      eth0      2.02      2.02      0.09      0.26      0.00      0.00      0.00
11:53:59 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

11:53:59 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
11:54:00 PM      eth0     10.00     10.00      0.84      1.54      0.00      0.00      0.00
11:54:00 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

监控网络流量

sar -n DEV (查看全天)

sar -n DEV 1 2 (1:每隔一秒,2:写入2次)
sar -n DEV 1 一秒一次 输出网络设备状态的统计信息

sar -n DEV 2 两秒一次 输出网络设备状态的统计信息

输出项详细说明
IFACE就是网络设备的名称。
rxpck/s每秒钟接收到的包数目。
txpck/s每秒钟发送出去的包数目。
rxkB/s每秒钟接收到的字节数。
txkB/s每秒钟发送出去的字节数。
rxcmp/s每秒钟接收到的压缩包数目。
txcmp/s每秒钟发送出去的压缩包数目。
rxmcst/s每秒钟接收到的多播包的包数目

其中重点关注rxKB/s以及txKB/s。
千兆网络,这两个值分别最大不应该超过120MB/s,换算成KB/s,则是120000kb/s

其他

free

linux系统上运行一下top 命令或者free命令,都能够看到buffers和cached相关的数据。需要注意的是通常我们看到的监控数据 空闲内存百分比,并非是下面显示的free/total,而是(free+buffers+cached)/total。
buffers在Linux系统中通常被作为与块存储的IO缓存使用。所谓块存储可简单理解为将数据直接写到裸磁盘。而cached则一般会用于文件系统的IO缓存。比如page cache这种内存换页功能。
听不明白也没关系,因为事实上它们两个经常配合使用。比如与磁盘交换数据、进行网络通信时都会用。buffers和cached是实实在在被操作系统的系统进程在使用的,但是如果用户进程需要可以很快释放。所以通常会将它算到剩余可用内存里。
但是这个也要注意了。比如在IO密集型的系统,如果buffers/cached被大幅占用,会降低IO速度,进而降低系统吞吐。甚至有可能一个请求几秒才能到达应用程序,造成请求超时。
在这里插入图片描述

iostat -x 3 2

iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

[root@VM-0-15-centos ~]# iostat -x 3 2
Linux 3.10.0-862.el7.x86_64 (VM-0-15-centos) 	12/12/2020 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.59    0.00    0.51    0.09    0.00   98.81

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.01     2.47    0.05    4.56     3.95    35.06    16.92     0.02    4.68   20.72    4.49   0.30   0.14
scd0              0.00     0.00    0.00    0.00     0.01     0.00    66.93     0.00    0.42    0.42    0.00   0.32   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.01    0.00    0.00    0.00    0.00   98.99

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               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
scd0              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

[root@VM-0-15-centos ~]# 

vmstat 3

vmstat命令的含义为显示虚拟内存状态(“Virtual Memory Statistics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。

[root@VM-0-15-centos ~]# vmstat 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 4  0      0 172228 138984 1308516    0    0     4    35    2   11  1  1 99  0  0
 0  0      0 173456 138988 1308512    0    0     0    57  488  586  1  0 99  0  0
 1  0      0 173472 138988 1308512    0    0     0    23  428  501  0  1 99  0  0
 0  0      0 173456 138988 1308516    0    0     0     0  421  482  1  0 99  0  0
^C

mpstat

mpstat命令指令主要用于多CPU环境下,它显示各个可用CPU的状态

[root@VM-0-15-centos ~]# mpstat
Linux 3.10.0-862.el7.x86_64 (VM-0-15-centos) 	12/12/2020 	_x86_64_	(1 CPU)

12:24:07 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
12:24:07 AM  all    0.59    0.00    0.51    0.09    0.00    0.00    0.00    0.00    0.00   98.81

dstat

dstat命令是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具。与sysstat相比,dstat拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且dstat支持即时刷新,譬如输入dstat 3即每三秒收集一次,但最新的数据都会每秒刷新显示。和sysstat相同的是,dstat也可以收集指定的性能资源,譬如dstat -c即显示CPU的使用情况。

下载安装

[root@VM-0-15-centos ~]# dstat
-bash: dstat: command not found
[root@VM-0-15-centos ~]# yum install -y dstat
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package dstat.noarch 0:0.7.2-12.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================================================
 Package                    Arch                        Version                            Repository               Size
=========================================================================================================================
Installing:
 dstat                      noarch                      0.7.2-12.el7                       os                      163 k

Transaction Summary
=========================================================================================================================
Install  1 Package

Total download size: 163 k
Installed size: 752 k
Downloading packages:
dstat-0.7.2-12.el7.noarch.rpm                                                                     | 163 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : dstat-0.7.2-12.el7.noarch                                                                             1/1 
  Verifying  : dstat-0.7.2-12.el7.noarch                                                                             1/1 

Installed:
  dstat.noarch 0:0.7.2-12.el7                                                                                            

Complete!

在这里插入图片描述

摘自:https://man.linuxde.net/sar

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值