自动采集文章 工具(2.工具介绍与设计工具实现的基本思想是逐个扫描指定路径)

优采云 发布时间: 2021-11-07 17:07

  自动采集文章 工具(2.工具介绍与设计工具实现的基本思想是逐个扫描指定路径)

  1.背景

  在性能测试的过程中,往往需要对服务器的性能进行监控,并记录这些性能指标的结果。无论是数据库服务器还是云下的应用服务器,都可以通过nmon进行监控,设置点间隔和点数,将性能指标保存成nmon文件,使用Excel插件Nmon_Analyzer等工具, Java GUI工具nmon visualizer等读取nmon文件内容,分析采集的结果。但是,当监控的服务器数量较多时,性能指标导致多个 nmon 文件的顺序会很耗时。同时,手动读取和记录数据也可能因记录错误而导致意外错误。因此,我们可以尝试使用我们熟悉的编程语言,比如 Python,

  2. 工具介绍与设计

  该工具实现的基本思想是将指定路径下的nmon文件逐一扫描,根据nmon文件的内部格式提取目标性能指标数据,然后对提取的数据进行处理,得到结果,并自动将结果保存到新一代结果在一个 Excel 文件中。为了更直观的获取用户输入的nmon文件路径和结果的保存路径,我们可以编写GUI界面,使用界面上的文本输入框获取用户的输入,使用界面上的按钮触发这个 采集 事件。

  

  图1 工具设计流程图

  3. 工具实现

  (1)导入需要的模块

  由于我们的工具收录对文件和路径的操作,这需要由 os 模块来实*敏*感*词*特。

  

  图2 Code-导入需要的模块

  (2)窗口的实现

  使用Tkinter模块创建窗口,插入输入框控件,获取用户输入的路径信息。输入框的内容存放在StringVar中,按钮Button设置为绑定鼠标点击事件。

  

  图 3a 窗口的代码实现

  

  图 3b 窗口实现图

  (3)写事件代码-一个函数,求平均CPU利用率

  不同版本的 nmon 文件的内部格式略有不同。因此,在编写程序时,首先要了解目标版本的内部结构,以确定字符串模式匹配时需要使用nmon文件中性能指标相关内容的哪些特征。

  为了计算平均值,您需要获取 nmon 文件中记录的点数。通过了解 nmon 文件中的 AAA 参数是有关操作系统和 nmon 本身的一些信息,您可以找到将其提取的行。

  

  图4 代码-获取点数和点间隔

  CPU_ALL 参数是所有 CPU 的概览,显示所有 CPU 的平均占用率。将记录的CPU占用率一一取出存储在数组中,计算数组元素的平均值,即整个监控周期内CPU的平均使用率。该函数将返回值。

  

  图 5 Code-Find 平均 CPU 使用率

  (4)写事件代码-一个函数来求平均内存使用

  同理,内存使用量通过MEM参数获取。与 CPU 情况不同的是,该参数行收录多个与内存相关的指标。在监控性能指标时,我们经常使用公式1来计算内存使用情况,所以需要从 MEM 参数中提取相关指标,包括 memtotal、memfree、cached、buffers,根据公式计算,返回内存使用情况.

  公式一 常用的内存占用计算公式

  

  图 6 Code-seeking 内存使用

  (5)写事件代码-鼠标点击事件

  该事件用于绑定界面上的按钮,实现按钮点击时的一系列操作:从输入框中取出nmon文件路径和目标保存路径,生成Excel文件并创建工作表,并写入到默认header内容,调用计算平均CPU使用率函数和计算平均内存占用率函数,将返回值写入Excel文件并保存。

  

  图7 Code-鼠标点击事件

  4. 总结

  该工具是一种基于Python语言的简单实践,可以自动批量提取nmon文件中的性能指标结果,并可以利用这个思路根据需要修改或扩展该工具的功能。使用此工具自动获取性能结果采集相比手动读取节省了时间,并避免了记录错误时的意外错误,有助于提高准确性和测试效率。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线