【Linux】阿里巴巴开源系统性能监视工具tsar:支持收集和报告系统的各种性能数据,包括CPU、内存、磁盘I/O、网络等,从下载、安装、入门到精通的全面指南

tsar 是一个功能强大且用户友好的系统性能监视工具,广泛应用于开发者和系统管理员中。本文将带你从 tsar 的基础知识开始,逐步深入到中级和高级用法,帮助你全面掌握 tsar 的强大功能。


🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:gylzbk

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

在这里插入图片描述

1. 什么是 tsar

tsar(Taobao System Activity Reporter)是一个开源的系统性能监视工具,能够收集和报告系统的各种性能数据,包括CPU、内存、磁盘I/O、网络等。tsar 提供了丰富的模块支持,并能够以图形化的方式展示数据,使用户可以直观地监控系统性能。

2. tsar 的安装与配置

2.1. 安装 tsar

在大多数Linux发行版上,可以通过包管理器或源码编译安装 tsar

CentOS/Fedora(通过EPEL库):

sudo yum install epel-release
sudo yum install tsar

源码编译安装:

git clone https://github.com/alibaba/tsar.git
cd tsar
make
sudo make install

make install成功之后,会通过定时任务,,自动每1分钟收集一次系统性能数据并记录到配置文件并记录到配置文件:/var/log/tsar.data中。后续查看系统信息时,就会从该文件中加载解析并展示(实时模式除外)。

2.2. 配置 tsar

安装完成后,可以通过编辑配置文件来配置 tsar

配置文件路径:

/etc/tsar/tsar.conf

3. 基础用法

3.1 帮助信息

在这里插入图片描述
翻译如下:

用法:tsar [选项]
选项:
    -check              显示警报的最后记录
    --check/-C          显示警报的最后记录,例如:tsar --check / tsar --check --cpu --io
    --watch/-w          每N分钟显示最后记录,例如:tsar --watch 30 / tsar --watch 30 --cpu --io
    --cron/-c           以cron模式运行,将数据输出到文件
    --interval/-i       指定间隔数量,如果与--live一起使用,单位为秒
    --list/-L           列出已启用的模块
    --live/-l           运行打印实时模式,将打印哪个模块
    --file/-f           指定文件路径作为输入
    --ndays/-n          显示过去天数的值(默认:1)
    --date/-d           显示指定日期的值(n或YYYYMMDD)
    --merge/-m          将多个项目合并为一个
    --detail/-D         不将数据转换为K/M/G
    --spec/-s           显示特定字段数据,tsar --cpu -s sys,util
    --item/-I           显示特定项目数据,tsar --io -I sda
    --help/-h           帮助
已启用的模块:
    --cpu               CPU共享(用户,系统,中断,nice,& 空闲)
    --mem               物理内存共享(活跃,非活跃,缓存,空闲,固定)
    --swap              交换使用情况
    --tcp               TCP流量(v4)
    --udp               UDP流量(v4)
    --traffic           网络流量统计
    --io                Linux I/O性能
    --pcsw              进程(任务)创建和上下文切换
    --partition         磁盘和分区使用情况
    --tcpx              TCP连接数据
    --load              系统运行队列和负载平均值

3.2 CPU 使用情况

3.2.1 查看历史使用情况

tsar --cpu

输出示例:

Time           -----------------------cpu----------------------
Time             user     sys    wait    hirq    sirq    util
28/08/24-15:05  11.96    2.54   11.34    0.00    0.01   17.27

MAX             11.96    2.54   11.34    0.00    0.01   17.27
MEAN            11.96    2.54   11.34    0.00    0.01   17.27
MIN             11.96    2.54   11.34    0.00    0.01   17.27

上述命令显示系统的CPU使用情况。
在这里插入图片描述
注意:如果tsar刚刚安装完成,会因为没有足够的历史数据导致没有结果展示。可以等待10分钟再尝试或者查看增加-l参数来查看相关指标的实时数据。

3.2.2 查看实时使用情况

tsar --cpu -l

输出示例:

Time              -----------------------cpu----------------------
Time                user     sys    wait    hirq    sirq    util
28/08/24-15:03:48   9.06    4.30    3.60    0.00    0.03   14.87
28/08/24-15:03:53   8.47    7.41   18.99    0.00    0.03   17.38
28/08/24-15:03:58   5.44    1.59    6.63    0.00    0.03    8.57

上述命令显示系统的CPU使用情况。
在这里插入图片描述

3.3 内存使用情况

查看当前内存使用情况:

tsar --mem

输出示例:

Time           -----------------------mem----------------------
Time             free    used    buff    cach   total    util
28/08/24-15:05   2.1G   59.9G   21.5G   42.4G  125.9G   47.59
28/08/24-15:10   7.4G   59.2G   20.5G   38.8G  125.9G   47.05

MAX              7.4G   59.9G   21.5G   42.4G  125.9G   47.59
MEAN             7.4G   59.2G   20.5G   38.8G  125.9G   47.05
MIN              2.1G   59.2G   20.5G   38.8G  125.9G   47.05

上述命令显示系统的内存使用情况。
在这里插入图片描述

3.4 磁盘 I/O 使用情况

查看当前磁盘I/O使用情况:

tsar --io

输出示例:

Time           ------------------------------------------------------------------vda------------------------------------------------------------------- ------------------------------------------------------------------vda1------------------------------------------------------------------ ------------------------------------------------------------------vdb------------------------------------------------------------------- ------------------------------------------------------------------vdb1------------------------------------------------------------------ ------------------------------------------------------------------vdc-------------------------------------------------------------------
Time            rrqms   wrqms   %rrqm   %wrqm      rs      ws   rsecs   wsecs  rqsize  rarqsz  warqsz  qusize   await  rawait  wawait   svctm    util    rrqms   wrqms   %rrqm   %wrqm      rs      ws   rsecs   wsecs  rqsize  rarqsz  warqsz  qusize   await  rawait  wawait   svctm    util    rrqms   wrqms   %rrqm   %wrqm      rs      ws   rsecs   wsecs  rqsize  rarqsz  warqsz  qusize   await  rawait  wawait   svctm    util    rrqms   wrqms   %rrqm   %wrqm      rs      ws   rsecs   wsecs  rqsize  rarqsz  warqsz  qusize   await  rawait  wawait   svctm    util    rrqms   wrqms   %rrqm   %wrqm      rs      ws   rsecs   wsecs  rqsize  rarqsz  warqsz  qusize   await  rawait  wawait   svctm    util
28/08/24-15:05   0.59   19.54   10.75   32.54    4.91   40.51  230.57    3.9K   46.24   23.47   49.00    1.00    2.41    0.20    2.68   21.68   98.47     0.59   19.54   10.75   32.54    4.91   40.51  230.57    3.9K   46.24   23.47   49.00    0.00    2.41    0.20    2.68    0.47    2.13     0.05   67.47    0.02   26.10  212.31  191.01    6.3K   22.4K   36.47   15.18   60.14    1.00    0.42    0.01    0.87    2.42   97.69     0.05   67.47    0.02   26.10  212.31  191.01    6.3K   22.4K   36.47   15.18   60.14    0.00    0.42    0.01    0.87    0.33   13.13   118.70   63.24    9.05    9.27    1.2K  618.55   85.1K   99.4K   52.13   36.51   82.25   44.00   22.99   30.17    9.14    0.42   75.76

MAX              0.59   19.54   10.75   32.54    4.91   40.51  230.57    3.9K   46.24   23.47   49.00    1.00    2.41    0.20    2.68   21.68   98.47     0.59   19.54   10.75   32.54    4.91   40.51  230.57    3.9K   46.24   23.47   49.00    0.00    2.41    0.20    2.68    0.47    2.13     0.05   67.47    0.02   26.10  212.31  191.01    6.3K   22.4K   36.47   15.18   60.14    1.00    0.42    0.01    0.87    2.42   97.69     0.05   67.47    0.02   26.10  212.31  191.01    6.3K   22.4K   36.47   15.18   60.14    0.00    0.42    0.01    0.87    0.33   13.13   118.70   63.24    9.05    9.27    1.2K  618.55   85.1K   99.4K   52.13   36.51   82.25   44.00   22.99   30.17    9.14    0.42   75.76
MEAN             0.59   19.54   10.75   32.54    4.91   40.51  230.57    3.9K   46.24   23.47   49.00    1.00    2.41    0.20    2.68   21.68   98.47     0.59   19.54   10.75   32.54    4.91   40.51  230.57    3.9K   46.24   23.47   49.00    0.00    2.41    0.20    2.68    0.47    2.13     0.05   67.47    0.02   26.10  212.31  191.01    6.3K   22.4K   36.47   15.18   60.14    1.00    0.42    0.01    0.87    2.42   97.69     0.05   67.47    0.02   26.10  212.31  191.01    6.3K   22.4K   36.47   15.18   60.14    0.00    0.42    0.01    0.87    0.33   13.13   118.70   63.24    9.05    9.27    1.2K  618.55   85.1K   99.4K   52.13   36.51   82.25   44.00   22.99   30.17    9.14    0.42   75.76
MIN              0.59   19.54   10.75   32.54    4.91   40.51  230.57    3.9K   46.24   23.47   49.00    1.00    2.41    0.20    2.68   21.68   98.47     0.59   19.54   10.75   32.54    4.91   40.51  230.57    3.9K   46.24   23.47   49.00    0.00    2.41    0.20    2.68    0.47    2.13     0.05   67.47    0.02   26.10  212.31  191.01    6.3K   22.4K   36.47   15.18   60.14    1.00    0.42    0.01    0.87    2.42   97.69     0.05   67.47    0.02   26.10  212.31  191.01    6.3K   22.4K   36.47   15.18   60.14    0.00    0.42    0.01    0.87    0.33   13.13   118.70   63.24    9.05    9.27    1.2K  618.55   85.1K   99.4K   52.13   36.51   82.25   44.00   22.99   30.17    9.14    0.42   75.76

上述命令显示系统的磁盘I/O使用情况。
在这里插入图片描述
注意:由于执行命令的服务器磁盘较多,加上分辨率不足以展示所有信息,会有错行问题。此时可以导出到文件中,然后文本编辑器以不自动换行模式进行查看。
在这里插入图片描述

3.5 网络使用情况

查看当前网络使用情况:

tsar --tcp
tsar --udp
tsar --tcpx

输出示例:

Time           -------------------------------tcp------------------------------
Time           active  pasive    iseg  outseg  EstRes  AtmpFa  CurrEs  retran
28/08/24-15:05   0.50    0.01  281.31  303.20    0.00    0.00  101.00    0.41
28/08/24-15:10   0.44    0.02  290.31  292.89    0.01    0.00  115.00    0.15
28/08/24-15:15   0.50    0.02   74.50   75.51    0.00    0.00  101.00    0.15

MAX              0.50    0.01  290.31  303.20    0.00    0.00  115.00    0.41
MEAN             0.47    0.02  182.40  184.20    0.00    0.00  108.00    0.15
MIN              0.50    0.01   74.50   75.51    0.00    0.00  101.00    0.15

上述命令显示系统的网络使用情况。
在这里插入图片描述

4. 中级技巧

4.1. 历史数据查看

查看指定日期的CPU使用情况:

tsar --cpu -s 2023-10-01 -e 2023-10-02

上述命令显示系统在指定日期(例如2023年10月1日至10月2日)的CPU使用情况。

4.2. 定时任务

make install成功之后,会通过定时任务,自动每1分钟收集一次系统性能数据并记录到配置文件:/var/log/tsar.data中。后续查看系统信息时,就会从该文件中加载解析并展示(实时模式除外)。
如果调整频率,可以编辑/etc/cron.d/tsar调整cron表达式。比如可以修改为每10分钟收集一次系统性能数据:

*/10 * * * *  root /usr/bin/tsar --cron > /dev/null 2>&1

5. 高级功能与定制

5.1. 自定义模块

tsar 支持自定义模块,用户可以根据需要编写自己的模块来收集特定的性能数据。

创建自定义模块:

cd /etc/tsar/modules
vi mymodule.c

编写自定义模块后,编译并安装:

make mymodule
sudo make install

启用自定义模块:
编辑 /etc/tsar/tsar.conf 文件,添加自定义模块:

mod_mymodule on

5.2. 脚本与自动化

示例脚本:

#!/bin/bash
tsar --cpu > cpu_usage.txt
tsar --mem > memory_usage.txt
tsar --io > disk_io_usage.txt
tsar --net > network_usage.txt

该脚本收集CPU、内存、磁盘I/O和网络的使用情况,并将结果保存到相应的文件中。

6. 常见问题与解决方案

问题:tsar 无法显示数据

解决方案: 确保 tsar 服务已启动,并且系统已收集到足够的数据。

问题:tsar 显示空白

解决方案: 检查数据收集间隔和时间段,确保指定的时间段内有系统活动。

结论

tsar 是一个功能强大且用户友好的系统性能监视工具,适用于各种级别的用户。通过本文的介绍,相信你已经掌握了 tsar 的基础、中级和高级用法。无论你是新手还是高级用户,都可以通过使用 tsar 来更好地监控和优化系统性能。

参考资料

希望这篇全面的指南能帮助你充分利用 tsar 的强大功能,提升你的生产力和工作效率。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

I'mAlex

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值