cpu频率监控linux系统,一种用于Linux的CPU压力测试监控方法与流程

本发明涉及的是服务器领域,尤其是在Linux下对CPU压力测试时,进行CPU监控的方法。

背景技术:

在现有技术中,公知的技术是CPU作为现代服务器的核心组成部分,其稳定性直接影响整个服务器的稳定性。在CPU的测试过程中,测试CPU的持续稳定性是重要的测试步骤。在CPU的高使用率下,CPU的功耗维持高水平,对主板或者电源的稳定性以及散热设计要求都很高,如果在压力过程中出现各种原因导致的供电不足或者温度过高,CPU的频率就会出现大幅波动,进而导致功耗限制,进而影响整机的性能发挥。

在CPU进行压力测试的过程中,需要实时监控CPU稳定性的几个重要指标,CPU频率、功耗、温度。一旦上述指标出现大幅波动,说明CPU的稳定性出现了问题,进而需要寻找问题的根源。

在windows下使用PTU测试时,PTU工具自带了实时监控的功能,能够以图像的形式实时展现CPU的几个指标。但是在Linux下测试时,PTU并没有自带这个功能。所以导致了在Linux下测试时,无法实时以图像的形式展现CPU的几个指标,无法及时快速的判断测试过程中在何时出现了波动。这是现有技术所存在的不足之处。

技术实现要素:

本发明的目的就是针对现有技术所存在的不足,而提供一种用于Linux的CPU压力测试监控方法,该方法在linux下实时监控CPU指标的CPU压力测试,在给CPU进行压力的测试过程中,能够实时记录CPU的频率、功耗、温度,并根据历史数据在同一幅图像上实时画出三个指标随时间的变化折线图。直至达到要求的时间上限后自动结束监控。通过本发明,能够在Linux系统下测试CPU稳定性过程中更加有效的直观的观测CPU的稳定性测试,及时发现测试异常,提升测试的品质,进而提升整个服务器的品质。

本方案是通过如下技术措施来实现的:一种用于Linux的CPU压力测试监控方法,包括:确定监控循环时间,并在测试过程中实时计算测试时间与开始时间的差值,判断是否到达设置的循环时间;在多个时间点读取CPU的各种参数数据,并将这些参数数据用于画图。设定了循环时间T,因为要实现每隔一定的时间生成一次图像,所以需要使用一个无限循环。直到时间达到要求的值T,则退出循环。在测试监控时,首先要判断是否有监控循环时间,如果没有则不进行压力测试监控。

进行测试监控时,要创建用于存储日志的文件夹,并唯一标识,用当前时间戳加入到命名中,形成唯一标识符。这样既便于存储监测数据,也有唯一的标识。

检查是否有指定监控CPU的时间参数和当前平台的型号。。因为需要指定监控CPU的时间,所以需要一个参数。同时因为不同平台获取CPU信息的参数不同,所以还需要第二个参数来指定当前的平台型号。如果输入的参数个数不是两个,则输出错误提示信息,然后退出。

检查是否有画图工具,如果有,则进入监控过程,如果没有则进行安装后再进入监控过程;在Linux系统中,检查是否安装画图工具时,执行whichgnuplot,如果已经安装了gnuplot画图工具,就会返回gnupplot工具所在的路径,返回值为0;如果没有安装gnuplot工具,则返回错误提示,返回值为非0;根据返回值是0还是非0,可以快速方便的判断出gnuplot是否已经安装。gnuplot工具在Linux系统中不是默认安装,所以需要检测此工具是否已经安装。

在监控循环过程中,获取当前时间点CPU的频率、温度、功耗数据,然后记录到日志文件中,然后将CPU频率、温度、功耗截止当前时间的历史数据分别从日志文件中获取,通过gnuplot工具画图呈现。

在画图过程中,创建跟获取到的数据值长度相同的时间值,作为X轴,左侧Y轴代表频率,右侧Y轴代表温度和功耗,分别找到频率的最大和最小值,温度和功耗中的最大和最小值,将左侧Y轴和右侧Y周的范围扩大,将两侧Y轴的范围均调整到最大值*1.1和最小值*0.9之间。这样图像都不会跟坐标轴重合了。

对于不同的平台类型,在获取数据的过程和绘图过程,均是分不同平台分别处理。因为不同平台使用的CPU监控工具的具体参数不同,所以针对不同平台使用不同参数进行秩序读取CPU的信息。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。

附图说明

图1为本发明具体实施方式的流程图图。

图2为监测到的CPU频率、温度、功耗的走势图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过一个具体实施方式,并结合其附图,对本方案进行阐述。

通过附图可以看出,本方案方法首先判断用户是否输入要求监控的总时间T,如果没有输入则退出程序,并提示用户输入这个参数;如果有输入,则进入下一步。创建日志文件,用当前时间戳加入到命名中,形成唯一标识符。

确定监控CPU的时间和平台型号这两个参数,同时因为不同平台获取CPU信息的参数不同,所以还需要指定当前的平台型号,为了在测试过程中实现基于时间的控制,需要在多个测试节点计算测试过程中时间和开始时间的差值,我们分别将两个时间转换成成相对于1970年1月1日0点的秒数,以便计算差值。因为1970年1月1日0点是操作系统的元年,即0点。如果要计算两个时间的时间差秒数,可以分别计算相对于1970年1月1日0点的秒数,然后相减即可算出差值秒数。这样算法简单,无需额外的依赖。先使用系统命令date +%s计算出当前时间相对于1970年1月1日0点的秒数A.

确认画图工具是否安装,画图使用的是gnuplot工具,在某些操作系统下这个工具不是默认安装,所以需要检测此工具是否已经安装,如果没有安装,则需要进行安装。linux自带一个which命令,当执行whichgnuplot时,如果已经安装了gnuplot工具,就会返回gnupplot工具所在的路径,返回值为0;如果没有安装gnuplot工具,则返回错误提示,返回值为非0。根据返回值是0还是非0,可以快速方便的判断出gnuplot是否已经安装。

为了持续获取CPU指标数据和完成图像,需要使用一个死循环。进入循环的指标是测试时间还未到达要求的值T;退出循环的指标是测试时间超过了要求的值T

在循环内部,获取当前时间点CPU的频率、温度、功耗数据,然后记录到日志文件中。然后将CPU频率、温度、功耗截止当前时间的历史数据分别从日志文件中获取,然后画图呈现。

因为目前CPU的频率的数值范围在10以内,而温度和功耗都在50以上,如果所有的值都是用同一个Y轴,那么就会出现频率图像非常靠下,而温度和功耗的图像非常靠上,中间是大片的空白,造成图像非常不美观,中间的位置大量浪费。为了将图像更美观的呈现,使数据尽可能的都在中间位置,Y轴使用双坐标来呈现。左侧Y轴代表频率,右侧Y轴代表温度和功耗。为了使所有值都能够在图像中显示,需要分别找到频率的最大和最小值,温度和功耗中的最大和最小值。只要Y轴范围在最大和最小值中间,那剩余的所有值都能够在图像中呈现。同时为了防止图像跟坐标轴重合,需要将Y轴的范围适当扩大,将Y轴的范围调整到最大值*1.1和最小值*0.9之间。这样图像都不会跟坐标轴重合了。

获取到结果之后,在一定的时间间隔之后,将已经获取到的CPU频率值、温度、功耗根据时间进行画图,并保存。通过查看这个图像,可以查看从开始监控到当前时间的CPU频率、温度、功耗随时间的变化。如果一旦出现大幅波动,从图像中可以非常快速、清晰地看出来,图2中最上面的线标识的是CPU POWER,即CPU功耗,中间的波浪线为CPU CFreg,即CPU频率,最下面的波浪线为CPU Temperature即CPU温度。

画完图像之后,判断循环是否结束,继续判断是否超过了所要求的测试时间。

本发明并不仅限于上述具体实施方式,本领域普通技术人员在本发明的实质范围内做出的变化、改型、添加或替换,也应属于本发明的保护范围。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值