本发明涉及的是服务器领域,尤其是在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温度。

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

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

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

  1. linux网卡握手速率模式,一种基于Linux平台下的网卡速率和双工模式测试的方法与流程...

    本发明涉及计算机技术领域,更具体的说是涉及一种基于Linux平台下的网卡速率和双工模式测试的方法. 背景技术: 随着社会经济的发展和互联网技术的进步,如今把计算机网络使得我们的生活变得更加方便,快捷. ...

  2. linux mysql cpu 高,Linux系统中关于Mysql数据库导致CPU很高的问题解决

    Linux系统中关于Mysql数据库导致CPU很高的问题解决 发布时间:2007-11-19 00:01:12来源:红联作者:spworks 服务器环境 Liunx AS4 + PHP5 + Mysq ...

  3. linux日志.pdf,一种用于LINUX的AUDIT日志分析方法.pdf

    一种用于Linux的audit日志分析方法 技术领域 本发明涉及服务器技术领域,具体的说是一种用于Linux的audit日志分析方法. 背景技术 Linux内核有用日志记录事件的能力,比如记录系统调用 ...

  4. 硬盘克隆带linux系统,一种Windows环境下基于DiskGenius克隆Linux系统的方法及系统与流程...

    本发明涉及服务器操作系统技术领域,特别是一种windows环境下基于diskgenius克隆linux系统的方法及系统. 背景技术: 服务器在测试过程中需要反复安装linux操作系统用于服务器的各种测 ...

  5. linux系统下一个冷门的RAID卡ioc0及其监控mpt-status

    这篇文章主要介绍了linux系统下一个冷门的RAID卡ioc0及其监控mpt-status,需要的朋友可以参考下 新接手了一台Linux服务器,准备检查是否有配置RAID. 先查看是否有RAID卡: ...

  6. linux系统查看电脑cpu,linux系统怎么查看自己电脑的cpu位数

    linux系统怎么查看自己电脑的cpu位数?不知道的话跟着学习啦小编一起来学习linux系统怎么查看自己电脑的cpu位数. linux系统怎么查看自己电脑的cpu位数的方法 1.查看Linux的操作系 ...

  7. Linux系统四种常用关机命令

    文章目录 一.halt命令 二.shutdown命令 三.poweroff命令 四.init命令 总结 一.halt命令 语法:halt [-n] [-w] [-d] [-f] [-i] [-p] 参 ...

  8. linux系统服务详解 用于Linux系统服务优化

    linux系统服务详解 用于Linux系统服务优化 服务名        必需(是/否)用途描述        注解 acon              否       语言支持        特别支 ...

  9. Linux系统磁状态检测,检测Linux硬件状态

    计算机系统是由软件系统和硬件系统共同组成的.检测硬件状态对于保障整个系统的稳定是非常重要的.不论操作系统是使用Linux.还是Windows,一旦硬件出现故障,那么整个系统的安全就严重了.这里我们主要 ...

最新文章

  1. 使用原生JS实现简单的ajax
  2. java nextline没有停住_java中使用nextLine(); 没有输入就自动跳过的问题?
  3. ACM算法--spfa算法--最短路算法
  4. 算法入门篇 一 时间复杂度
  5. c mysql使用场景_Mysql 场景
  6. 17个可以节省你时间的CSS工具
  7. python3什么意思_python3是什么意思啊
  8. python注册登录+mysql_Flask+MySql实现用户登录注册
  9. 实验1 查看cpu和内存,用机器指令和汇编指令编程
  10. 苹果Mac如何限制进程 CPU 资源占用?
  11. 【Tensorflow】下载预训练模型和参数小结
  12. 电机与拖动matlab仿真,Matlab仿真软件在电机与拖动中的应用
  13. goldwave教程分享:用GoldWave进行音量调节
  14. 开发对接微信卡包会员卡_微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)...
  15. 汇编语言学习篇2——MASM的环境搭建(win10与Ubuntu1604下的配置)【有问题,待更正】
  16. tracker使用_如何使用Tracker查找钥匙,钱包,电话或其他任何东西
  17. Vue3+Vite3 SSR基本搭建
  18. 夏普电视android应用程序,教你解决夏普电视出现的“应用程序未安装”问题
  19. 炒菜机器人的弊端_炒菜机器人用不了?那我就来个暴力拆解
  20. 【python】透小菜参加了华为和阿里的笔试。

热门文章

  1. 离散数学_数理逻辑篇(总结)
  2. PDF增强插件:PitStop Pro 2020 for Mac
  3. 算法:整数转罗马数字(integer-to-roman)。
  4. 为什么总是找不到工作?
  5. 冬天肾囊肿病人应注意事项
  6. 关闭airpods的自动链接
  7. php数字验证码代码,php实现的数字验证码及数字运算验证码
  8. 数据库授权与回收权限 grant和revoke
  9. Hyperledger Fabric 2.0 chaincode lifecycle
  10. 有些星座天生不适合干有些事情,如果一定要为之恐怕就会落到饿死的地步了!你知道自己这个星座有哪些事情是容易让自己饿死的吗?