当前位置: 首页 > 工具软件 > Tsar > 使用案例 >

linux系统性能监控工具(2) sar 与 tsar 命令详解。

西门建安
2023-12-01

sar

安装工具:yum install sysstat -y

选项

-uCPU 资源监控
- vinode、文件和其他内核表监控
-r内存和交换空间监控
-B内存分页监控
-bI/O 和传送速率监控
-q进程队列长度和平均负载状态监控
-W系统交换活动信息监控
-o test并将采样结果以二进制形式存入当前目录下的文件 test 中

cpu 资源监控

可以间隔相同的时间采集数据,观察 CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件 test 中。

[root@xiaoagiao bak]# sar -u -o file 2 3    #每两秒采集一次,一共三次,结果存入当前目录file中
Linux 3.10.0-957.el7.x86_64 (xiaoagiao)         04/19/2020      _x86_64_        (1 CPU)

10:07:05 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:07:07 PM     all      0.00      0.00      0.50      0.00      0.00     99.50
10:07:09 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
10:07:11 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.00      0.00      0.17      0.00      0.00     99.83

sar -u -f file #读取file文件

各项解释

CPUall 表示统计信息为所有 CPU 的平均值
%user显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice显示在用户级别,用于 nice 操作,所占用 CPU 总时间的百分比。
%system在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait显示用于等待 I/O 操作占用 CPU 总时间的百分比。
%steal管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle显示 CPU 空闲时间占用 CPU 总时间的百分比。
注意:
  1. 若 %iowait 的值过高,表示硬盘存在 I/O 瓶颈
  2. 若 %steal的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
  3. 若 %idle 的值持续低于 1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源
    是 CPU 。

inode、文件和其他内核表监控

[root@xiaoagiao /]# sar -v 2 3              #每2秒采集一次,一共3次
Linux 3.10.0-957.el7.x86_64 (xiaoagiao)         04/19/2020      _x86_64_        (1 CPU)

10:30:43 PM dentunusd   file-nr  inode-nr    pty-nr
10:30:45 PM     16377      1312     25736         1
10:30:47 PM     16377      1312     25736         1
10:30:49 PM     16377      1312     25736         1
Average:        16377      1312     25736         1

各项解释

dentunusd目录高速缓存中未被使用的条目数量
file-nr文件句柄(file handle)的使用数量
inode-nr索引节点句柄(inode handle)的使用数量
pty-nr使用的 pty 数

内存和交换空间监控

[root@xiaoagiao ~]# sar -r 1 3
Linux 3.10.0-957.el7.x86_64 (xiaoagiao)         04/19/2020      _x86_64_        (1 CPU)

10:46:29 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
10:46:31 PM   1529572    333652     17.91      2108    116368    293820      7.42    113676     80744        24
10:46:32 PM   1529572    333652     17.91      2108    116368    293820      7.42    113680     80744        24
10:46:33 PM   1529572    333652     17.91      2108    116368    293820      7.42    113688     80744         0
Average:      1529572    333652     17.91      2108    116368    293820      7.42    113681     80744        16

各项解释

kbmemfree剩余内存,和 free 命令中的 free 值基本一致,所以它不包括 buffer 和 cache 的空间.
kbmemused已使用内存,和 free 命令中的 used 值基本一致,所以它包括 buffer 和 cache 的空间.
%memused这个值是 kbmemused 和内存总量(不包括 swap)的一个百分比.
kbbuffers和free命令中buffer相同
kbcache就是 free 命令中的cache
kbcommit保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit这个值是 kbcommit 与内存总量(包括 swap)的一个百分比.

内存分页监控

[root@xiaoagiao ~]# sar -B 1 3
Linux 3.10.0-957.el7.x86_64 (xiaoagiao)         04/19/2020      _x86_64_        (1 CPU)

10:54:25 PM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
10:54:26 PM      0.00      0.00     66.34      0.00     43.56      0.00      0.00      0.00      0.00
10:54:27 PM      0.00      0.00     26.00      0.00     44.00      0.00      0.00      0.00      0.00
10:54:28 PM      0.00      0.00     16.00      0.00     43.00      0.00      0.00      0.00      0.00
Average:         0.00      0.00     36.21      0.00     43.52      0.00      0.00      0.00      0.00

各项解释

pgpgin/s表示每秒从磁盘或 SWAP 置换到内存的字节数(KB)
pgpgout/s表示每秒从内存置换到磁盘或 SWAP 的字节数(KB)
fault/s每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)
majflt/s每秒钟产生的主缺页数.
pgfree/s每秒被放入空闲队列中的页的页数
pgscank/s每秒被 kswapd 扫描的页的页数
pgscand/s每秒直接被扫描的页个数
pgsteal/s每秒钟从 cache 中被清除来满足内存需要的页个数
%vmeff每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比

I/O 和传送速率监控

[root@xiaoagiao ~]# sar -b 1 3
Linux 3.10.0-957.el7.x86_64 (xiaoagiao)         04/19/2020      _x86_64_        (1 CPU)

11:04:17 PM       tps      rtps      wtps   bread/s   bwrtn/s
11:04:18 PM      0.00      0.00      0.00      0.00      0.00
11:04:19 PM      0.00      0.00      0.00      0.00      0.00
11:04:20 PM      0.00      0.00      0.00      0.00      0.00
Average:         0.00      0.00      0.00      0.00      0.00

各项解释

tps每秒钟物理设备的 I/O 传输总量
rtps每秒钟从物理设备读出的数据总量
wtps每秒钟向物理设备写入的数据总量
bread/s每秒钟从物理设备读出的数据量,单位为 块/s
bwrtn/s每秒钟向物理设备写入的数据量,单位为 块/s

进程队列长度和平均负载状态监控

[root@xiaoagiao ~]# sar -q 1 3
Linux 3.10.0-957.el7.x86_64 (xiaoagiao)         04/19/2020      _x86_64_        (1 CPU)

11:09:36 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
11:09:37 PM         0       123      0.01      0.02      0.05         0
11:09:38 PM         0       123      0.01      0.02      0.05         0
11:09:39 PM         0       123      0.01      0.02      0.05         0
Average:            0       123      0.01      0.02      0.05         0

各项解释

runq-sz运行队列的长度(等待运行的进程数)
plist-sz进程列表中进程(processes)和线程(threads)的数量
ldavg-1最近 1 分钟的系统平均负载
ldavg-5过去5分钟系统平均负载
ldavg-15过去5分钟系统平均负载

系统交换活动信息监控


[root@xiaoagiao ~]# sar -W 1 3
Linux 3.10.0-957.el7.x86_64 (xiaoagiao)         04/19/2020      _x86_64_        (1 CPU)

11:35:54 PM  pswpin/s pswpout/s
11:35:55 PM      0.00      0.00
11:35:56 PM      0.00      0.00
11:35:57 PM      0.00      0.00
Average:         0.00      0.00

各项解释

pswpin/s每秒系统换入的交换页面(swap page)数量
pswpout/s每秒系统换出的交换页面(swap page)数量

tsar

简介

tsar 是淘宝自己开发的一个采集工具,主要用来收集服务器的系统信息(如 cpu,io,mem,tcp
等),以及应用数据(如 squid haproxy nginx 等)。收集到的数据存储在磁盘上,可以随时查询历史
信息,输出方式灵活多样,另外支持将数据存储到 MySQL 中,也可以将数据发送到 nagios 报警服务
器。tsar 在展示数据时,可以指定模块,并且可以对多条信息的数据进行 merge 输出,带–live 参数可
以输出秒级的实时信息总体架构

安装

需要源码安装:

1.wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-check-certificate #下载压缩包到本地
2.yum install unzip #安装解压工具
3.unzip tsar.zip #解压
4.cd tsar-master/ #前往安装包中的tsar-master中
5.make #编译
6.make install #安装

关于tsar工具的配置

安装完成后,会产生一个定时任务

[root@xiaoagiao ~]# cd /etc/cron.d
[root@xiaoagiao cron.d]# cat tsar
# cron tsar collect once per minute
MAILTO=""
* * * * * root /usr/bin/tsar --cron > /dev/null 2>&1

每分钟以 root 用户的角色调用 tsar 命令来执行数据采集。 

日志文件轮转 : /etc/logrotate.d/tsar

在日志文件轮转配置中,每个月会把 tsar 的本地存储进行轮转,此外这里也设定了数据在
/var/log/tsar.data 下

[root@xiaoagiao cron.d]# cat /etc/logrotate.d/tsar 
cat /etc/logrotate.d/tsar
/var/log/tsar.data
{
monthly
rotate 120
create
nocompress
nodateext
notifempty
prerotate
/usr/bin/chattr -a /var/log/tsar.data
endscript
postrotate
/usr/bin/chattr +a /var/log/tsar.data
endscript
}

常用命令

以 1 秒钟为间隔,实时打印 tsar 的概述数据
  • tsar -i 1 -l
[root@xiaoagiao ~]# tsar -i 1 -l
[root@xiaoagiao ~]# tsar -i 1 -l
Time              ---cpu-- ---mem-- ---tcp-- -----traffic---- --sr0--- --sda--- --sdb---  ---load-
Time                util     util   retran    bytin  bytout     util     util     util     load1
20/04/20-18:03:16   1.49    11.97   100.00   246.00  204.00     0.00     0.00     0.00      0.01
20/04/20-18:03:17   0.00    11.97     0.00   120.00  122.00     0.00     0.00     0.00      0.01
20/04/20-18:03:18   0.00    11.97     0.00   120.00  106.00     0.00     0.00     0.00      0.01
20/04/20-18:03:19   0.00    11.97     0.00    60.00   98.00     0.00     0.00     0.00      0.01
20/04/20-18:03:21   0.00    11.97     0.00    60.00   98.00     0.00     0.00     0.00      0.01
20/04/20-18:03:22   0.00    11.97     0.00   180.00   90.00     0.00     0.00     0.00      0.01
查看磁盘io情况
  • tsar --io --check
[root@xiaoagiao ~]# tsar --io --check
xiaoagiao       tsar    io:sda:rrqms=0.0 io:sda:wrqms=0.0 io:sda:%rrqm=0.0 io:sda:%wrqm=0.0 io:sda:rs=0.0 io:sda:ws=0.1 io:sda:rsecs=0.0 io:sda:wsecs=1.0 io:sda:rqsize=3.9 
io:sda:rarqsz=0.0 io:sda:warqsz=3.9 io:sda:qusize=0.0 io:sda:await=1.1 io:sda:rawait=0.0 io:sda:wawait=1.1 io:sda:svctm=0.5 io:sda:util=0.0 
io:sdb:rrqms=0.0 io:sdb:wrqms=0.0 io:sdb:%rrqm=0.0 io:sdb:%wrqm=0.0 io:sdb:rs=0.0 io:sdb:ws=0.0 
……………………
显示一天历史总汇信息,默认间隔5秒
  • tsar --swap --check
[root@xiaoagiao ~]# tsar --swap --check
xiaoagiao       tsar    swap:swpin=0.0 swap:swpout=0.0 swap:total=2147479552.0 swap:util=0.0
查看一天内cpu的历史信息

一天之中每5分钟间隔cpu信息

  • 可以指定间隔时间:tsar --cpu -i #
[root@xiaoagiao ~]# tsar --cpu
Time           -----------------------cpu----------------------
Time             user     sys    wait    hirq    sirq    util
19/04/20-18:10   0.01    0.08    0.01    0.00    0.00    0.09
19/04/20-18:15   0.02    0.08    0.00    0.00    0.00    0.10
19/04/20-18:20   0.01    0.07    0.00    0.00    0.00    0.08
19/04/20-18:25   0.01    0.08    0.15    0.00    0.00    0.09
19/04/20-18:30   0.01    0.07    0.03    0.00    0.00    0.08
19/04/20-18:35   0.02    0.09    0.04    0.00    0.00    0.12
19/04/20-18:40   0.01    0.21    0.22    0.00    0.00    0.22
19/04/20-18:45   0.01    0.08    0.00    0.00    0.00    0.09
19/04/20-18:50   0.02    0.09    0.00    0.00    0.00    0.10
19/04/20-18:55   0.01    0.08    0.00    0.00    0.00    0.09
19/04/20-19:00   0.03    0.08    0.00    0.00    0.00    0.11
19/04/20-19:05   0.03    0.09    0.00    0.00    0.00    0.13
19/04/20-19:10   0.02    0.07    0.00    0.00    0.00    0.09
19/04/20-19:15   0.01    0.09    0.00    0.00    0.00    0.10
19/04/20-19:20   0.01    0.08    0.06    0.00    0.00    0.09
19/04/20-19:25   0.02    0.09    0.00    0.00    0.00    0.11
19/04/20-19:30   0.05    0.12    0.00    0.00    0.00    0.17
19/04/20-19:35   0.05    0.12    0.00    0.00    0.00    0.17
………………………………
打印内存信息
  • 打印当前内存状态,可以指定间隔时间
    • tsar - -live - -mem - i 2:时间间隔为两秒实时输出(每两秒输出一次)
[root@xiaoagiao ~]# tsar --live --mem -i 2
Time              -----------------------mem----------------------
Time                free    used    buff    cach   total    util
20/04/20-18:17:23   1.4G  217.7M    2.2M  147.7M    1.8G   11.97
20/04/20-18:17:25   1.4G  217.7M    2.2M  147.7M    1.8G   11.97
20/04/20-18:17:27   1.4G  217.7M    2.2M  147.7M    1.8G   11.97
20/04/20-18:17:29   1.4G  217.7M    2.2M  147.7M    1.8G   11.97
20/04/20-18:17:31   1.4G  217.7M    2.2M  147.7M    1.8G   11.97
20/04/20-18:17:33   1.4G  217.7M    2.2M  147.7M    1.8G   11.97
20/04/20-18:17:35   1.4G  217.7M    2.2M  147.7M    1.8G   11.97
20/04/20-18:17:37   1.4G  217.7M    2.2M  147.7M    1.8G   11.97
………………
  • 打印当天内存信息,默认间隔时间为5秒钟
[root@xiaoagiao ~]# tsar --mem
Time           -----------------------mem----------------------
Time             free    used    buff    cach   total    util
19/04/20-23:05   1.4G  222.6M    2.1M  113.7M    1.8G   12.23
19/04/20-23:10   1.4G  222.6M    2.1M  113.8M    1.8G   12.23
19/04/20-23:15   1.4G  222.6M    2.1M  113.7M    1.8G   12.23
19/04/20-23:20   1.4G  223.4M    2.1M  113.8M    1.8G   12.28
19/04/20-23:25   1.4G  222.6M    2.1M  113.8M    1.8G   12.24
19/04/20-23:30   1.4G  223.5M    2.1M  113.9M    1.8G   12.28
19/04/20-23:35   1.4G  228.2M    2.1M  113.9M    1.8G   12.54
19/04/20-23:40   1.4G  228.3M    2.1M  114.0M    1.8G   12.55
19/04/20-23:45   1.4G  228.4M    2.1M  113.9M    1.8G   12.55
19/04/20-23:50   1.4G  226.4M    2.1M  114.0M    1.8G   12.44
19/04/20-23:55   1.4G  225.4M    2.1M  114.1M    1.8G   12.39
20/04/20-00:00   1.4G  226.3M    2.1M  114.4M    1.8G   12.44
20/04/20-00:05   1.4G  225.8M    2.1M  114.4M    1.8G   12.41
20/04/20-09:40   1.4G  231.1M    2.1M  114.6M    1.8G   12.70
20/04/20-09:45   1.4G  231.5M    2.1M  114.5M    1.8G   12.72
20/04/20-18:00   1.4G  216.4M    2.2M  147.6M    1.8G   11.89
20/04/20-18:05   1.4G  215.9M    2.2M  147.7M    1.8G   11.87
20/04/20-18:10   1.4G  215.9M    2.2M  147.7M    1.8G   11.87
20/04/20-18:15   1.4G  216.0M    2.2M  147.7M    1.8G   11.87

MAX              1.5G  231.5M    2.2M  147.7M    1.8G   12.70
MEAN             1.4G  218.4M    2.1M  115.0M    1.8G   12.00
MIN              1.4G  210.2M    2.1M  110.8M    1.8G   11.60

 类似资料: