tsar
是一个功能强大且用户友好的系统性能监视工具,广泛应用于开发者和系统管理员中。本文将带你从 tsar
的基础知识开始,逐步深入到中级和高级用法,帮助你全面掌握 tsar
的强大功能。
🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:
gylzbk
)
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。
【Linux】阿里巴巴开源系统性能监视工具tsar:支持收集和报告系统的各种性能数据,包括CPU、内存、磁盘I/O、网络等,从下载、安装、入门到精通的全面指南
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
的强大功能,提升你的生产力和工作效率。