性能资源监控工具res-monitor设计思路与实现
admin
2023-07-10 21:24:24
0

一 前言

在性能测试中,对机器资源使用情况的监控几乎是必不可少的,如何从本地windows主机同时监控多台linux服务器的性能指标?如何方便、快捷、又近似实时的观察到每个被监控主机的运行情况,而不需要提前做侵入式的操作?这些问题就是我写res-monitor的初衷。

二 res-monitor是什么?

res-monitor是轻量的多机性能指标监控工具,打开即用,无需在被监控主机安装所谓的 ”agent”, 完全基于linux自带命令,如top、free、dstat完成资源的监控和采集。 res-monitor的目标是用在性能测试中,方便、近似实时的监控多台服务器的性能指标数据,为后期的性能瓶颈定位或分析提供依据。

三 为什么不用nmon或其他监控系统?

没有说哪个工具不好用,主要考虑实际应用场景或需求。Nmon是一款方便、轻量、全面的资源监控工具,非常喜欢,它也是我写性能自动化框架中使用的资源监控工具。在那个框架工具中,实现了性能场景执行自动化、监控自动化、结果分析自动化,nmon的作用功不可没,公众号有篇文章对该框架的设计思路做过介绍,感兴趣可以关注了解。但在新环境、新项目测试时,需要每台机器提前部署nmon(其实很简单),而且一般需要保存数据用在测试报告中,所以通常使用nmon写入文件的方法,测试完成后再事后分析(当然nmon是支持命令交互实时输出的),这样就额外增加了整理、分析数据的工作量。可以粗略想一下,同时监控5台中间件的4大基础资源的后期时间成本,5个nmon文件4组指标(cpu\mem\net\io)1分钟(每项指标分析、求值)≈20分钟….

Glances\Nagios\Zabbix这类监控系统,虽然相当强大,但对我们日常性能测试显的过于笨重了,安装麻烦、而且很多被监控机器是未配置外网连接的,缺少什么或要更新什么都很费劲,不是一句yum或apt-get所能解决的。我更偏向”瑞士×××”等犀利、便携式的,能达到目的就行。

四 解决思路

Res-monitor应该是一款打开即用、无需被监控系统安装额外工具(除了top\free\dstat),这些命令都是linux发行包里自带的,当然如果真的没有,那就yum install –y xxx一下吧。

  1. Res-monitor使用paramiko完成ssh连接和命令执行;这是python里成熟的ssh方案;

  2. Res-monitor使用rrdtool存储数据和绘制图形,其中rrdtool是一款复杂却好用的环形数据库,后面有空专门介绍一下它;

  3. Res-monitor使用logging完成操作日志记录,同时应该支持将每次监控数据保存;

  4. Res-monitor使用html网页展示监控数据,使用js完成页面的自动刷新;

  5. Res-monitor应该在某台监控出现异常时,主动停止所有机器的监控,设置一个用于保存状态的类变量即可解决;

  6. Res-monitor需要考虑linux发行版、命令命令等不同造成的输出差异化,通过使用awk、cut、tail等完成输出形式的兼容性处理;

  7. Res-monitor需要考虑多被监控服务器可能存在多网卡的情形、网卡、磁盘命名等可能差异较大。为了工具的通用性,网卡数据取total值,即不区分哪个网卡的流量;磁盘利用率,同样不区分磁盘,只统计采集时刻最大的利用率作为结果值,这样设计的考量是,性能测试中,如果最大值就在可接受范围,那结果就无需多关心,如果有异常,最终还是要靠性能人员去定位,而不是工具。

五 期望目标

Res-monitor可以轻松完成对多服务器的性能指标监控,无需额外安装,不依赖环境,打开即用,数据结果保存及图形化输出。

六 实现效果

如下图是监控一台linux服务器的结果,html报告近似实时输出cpu\mem\net\io数据和图形,只所以说是近似,是因为工具支持配置监控采集间隔,默认5s,间隔太短可能对性能有干扰。

性能资源监控工具res-monitor设计思路与实现

其他资源

关于python学习、分享、交流,笔者开通了微信公众号【小蟒社区】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学python。


相关内容

热门资讯

美伊谈判濒临破裂之际,伊朗议长... 因为以色列持续对黎巴嫩进行军事打击,伊朗宣布暂停同美国的谈判。不过美国总统特朗普称,对话仍在继续。谈...
罕见!以军政策发生“重大转变” 新华社北京6月1日电 题:罕见纵深推进,以军对黎行动会否搅动美伊谈判新华社记者刘品然 阚静文 席玥以...
山西太原发现一处新石器遗址,出... 山西省太原市文物保护研究院协同相关科研机构,近期在太原市阳曲县西盘威村发现一处新石器时代重要遗址——...
伊媒发布穆杰塔巴罕见照片 伊朗塔斯尼姆通讯社6月1日发布了一张最高领袖穆杰塔巴的照片。照片中,穆杰塔巴面露笑容,抱着一个婴儿。...
福建“泡药杨梅”曝光后,浙江杨... 这两天,浙江本地杨梅少量进入市场。虽然受到此前福建 “泡药杨梅” 事件影响,市场整体销量相比去年同期...
尺素金声 | 前4月规上工业企... 5月27日,国家统计局发布最新数据显示,今年前4月,全国规上工业企业实现利润同比增长18.2%,增速...
郑丽文:台湾民众越来越了解“台... 针对台湾《联合报》民调显示,63%受访者民意希望维持现状,即将访美的中国国民党主席郑丽文1日表示,民...
美前副总统:共和党失去了方向,... 2026年是美国的中期选举年,共和党选情不利,可能在年底的选举中遭遇挫败。美国前副总统彭斯5月31日...
南枝原来去过中国?《给阿嬷的情... 《给阿嬷的情书》票房口碑双丰收,目前票房已突破13亿。凤凰卫视最新一期《问答神州》专访了该片导演蓝鸿...
法国海军扣押一艘俄“影子舰队”... 近日,法国海军在大西洋海域扣押了一艘据称从俄罗斯摩尔曼斯克出发的油轮,引发俄方强烈不满。俄新社6月1...