来源:运维记事
背景引入
提到Linux系统中常用的性能分析工具,那我们一定会想到sar(System Activity Report)。它可以从多方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、网络吞吐量、进程活动及 IPC 有关的活动等。可以通过使用sar工具来获取整个系统性能情况从而进行深度分析,帮助我们定位系统性能瓶颈。在系统上sar文件CPU资源利用情况如下:
内存资源利用情况:
很显然,查看文件内容不能清晰直观的发现一段时间内指定指标的性能走势情况,对于做汇报,写材料的人来说,上面的数据确实没有任何视觉冲击,接下来将介绍2种工具,能够直接对linux系统上sar文件以图表的形式进行直观分析。
工具一:ctbots
平台地址:。它提供了Java,JVM,JDK、Arthas、Linux(sar、netstat、进程、dmesg)以及一些中间件相关监控数据的分析及问题诊断功能,它可以直接将监控的文件数据绘制为图表,快速判断性能问题的瓶颈在哪里,而sar文件分析也只是其中的一个功能点。cpu分析效果如下:
内存分析效果如下:
网络分析效果如下:
IO分析效果如下:
系统其他数据分析如下:
工具二:kSar
kSar是一个图形化显示sar数据的 Java 应用程序。它也允许以 PDF/JPG/PNG/CSV 格式导出数据。你可以用三种方式去加载数据:本地文件、运行本地命令、以及通过 SSH 远程运行的命令。使用ksar的前提是该机安装了java。
软件包地址:
下载后直接运行kSar.jar文件打开软件。
导入sar文件进行分析,cpu分析如下:
IO分析如下:
内存分析如下:
工具三:Red Hat I/O Usage Visualizer
访问地址:
该工具是同时使用sar以及lsblk文件对磁盘IO如下6项指标进行在线分析,不过该工具的使用需要有redhat订阅账号。效果如下:
tps(每秒钟物理设备的 I/O 传输总量):
rd_sec/s(每秒读扇区的次数):
wr_sec/s(每秒写扇区的次数):
avgrq-sz(平均每次设备I/O操作的数据大小,单位是扇区):
avgqu-sz(磁盘请求队列的平均长度):
await(从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒:
总结
-
ctbots跟kSar每次只能对一个sar文件进行分析,sar每天生成一次,所以分析单个文件趋势图也只有某一天
-
Red Hat I/O Usage Visualizer一次可以分析多个文件,故可以对连续几天的日志做性能趋势分析