CPU使用率监控方法、装置、电子设备及存储介质与流程

文档序号:17762113发布日期:2019-05-24 21:47阅读:157来源:国知局
CPU使用率监控方法、装置、电子设备及存储介质与流程
本发明涉及运维
技术领域
,尤其涉及一种cpu使用率监控方法、装置、电子设备及存储介质。
背景技术
:在现有技术方案中,市面的标准springboot产品通常不会对rocketmq的cpu使用率进行监控,而在传统的主机层面,cpu监控是包含操作系统所有进程统计的,因此无法区分是应用java进程还是其他操作系统进程,这样,在cpu使用率如果出现飙高现象时,则可能会产生误判。该项指标作为应用运维所关注的核心指标,如果偏高,应用系统可能会出现处理响应缓慢的情况,给用户的使用造成一定的影响。技术实现要素:鉴于以上内容,有必要提供一种cpu使用率监控方法、装置、电子设备及存储介质,便于在发生异常时及时进行维护,从而有效避免响应缓慢的情况,提高运维效率。一种cpu使用率监控方法,所述方法包括:接收cpu使用率监控指令;根据所述监控指令调用rocketmq工具获取cpu状态;当所述cpu状态为可用状态时,采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid;根据所述pid,利用top命令调出当前cpu使用率;保存并展示所述当前cpu使用率。根据本发明优选实施例,所述采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid包括:采用ps命令,从所有运行的进程中调取所述rocketmq的所有进程信息;结合所述指定关键字namesrvstartup和brokerstartup,从所述所有进程信息中获取所述rocketmq进程的pid。根据本发明优选实施例,所述根据所述pid,利用top命令调出当前cpu使用率包括:根据所述pid,利用top命令,从所述所有运行的进程中调取所述rocketmq进程的资源信息;根据配置指令,从所述资源信息中获取当前cpu使用率。根据本发明优选实施例,展示所述当前cpu使用率包括:通过grafana展示平台展示所述当前cpu使用率。根据本发明优选实施例,所述方法还包括:当所述当前cpu使用率大于或者等于第一配置值时,发出警报。根据本发明优选实施例,所述方法还包括:获取上一个配置周期的初始cpu使用率;计算所述当前cpu使用率与所述初始cpu使用率的第一差值;计算所述第一差值与所述初始cpu使用率的比值;当所述比值大于或者等于第二配置值时,发出警报。根据本发明优选实施例,所述方法还包括:对所述电子设备进行压力测试,以得到cpu模拟使用率;计算所述当前cpu使用率与所述cpu模拟使用率的第二差值;当所述第二差值的绝对值大于预设阈值时,发出警报。一种cpu使用率监控装置,所述装置包括:接收单元,用于接收cpu使用率监控指令;获取单元,用于根据所述监控指令调用rocketmq工具获取cpu状态;所述获取单元,还用于当所述cpu状态为可用状态时,采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid;调取单元,用于根据所述pid,利用top命令调出当前cpu使用率;展示单元,用于保存并展示所述当前cpu使用率。根据本发明优选实施例,所述获取单元采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid包括:采用ps命令,从所有运行的进程中调取所述rocketmq的所有进程信息;结合所述指定关键字namesrvstartup和brokerstartup,从所述所有进程信息中获取所述rocketmq进程的pid。根据本发明优选实施例,所述调取单元具体用于:根据所述pid,利用top命令,从所述所有运行的进程中调取所述rocketmq进程的资源信息;根据配置指令,从所述资源信息中获取当前cpu使用率。根据本发明优选实施例,所述展示单元展示所述当前cpu使用率包括:通过grafana展示平台展示所述当前cpu使用率。根据本发明优选实施例,所述装置还包括:发出单元,用于当所述当前cpu使用率大于或者等于第一配置值时,发出警报。根据本发明优选实施例,所述获取单元,还用于获取上一个配置周期的初始cpu使用率;所述装置还包括:计算单元,用于计算所述当前cpu使用率与所述初始cpu使用率的第一差值;所述计算单元,还用于计算所述第一差值与所述初始cpu使用率的比值;所述发出单元,还用于当所述比值大于或者等于第二配置值时,发出警报。根据本发明优选实施例,所述装置还包括:测试单元,用于对所述电子设备进行压力测试,以得到cpu模拟使用率;所述计算单元,还用于计算所述当前cpu使用率与所述cpu模拟使用率的第二差值;所述发出单元,还用于当所述第二差值的绝对值大于预设阈值时,发出警报。一种电子设备,所述电子设备包括:存储器,存储至少一个指令;及处理器,执行所述存储器中存储的指令以实现所述cpu使用率监控方法。一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现所述cpu使用率监控方法。由以上技术方案可以看出,本发明能够在接收到cpu使用率监控指令后,根据所述监控指令调用rocketmq工具获取cpu状态,并当所述cpu状态为可用状态时,再采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid,以避免进行多余的操作,增加工作量,同时避免误判,进一步根据所述pid,利用top命令调出当前cpu使用率,保存并展示所述当前cpu使用率,以将所述当前cpu使用率提供给相关工作人员,便于在发生异常时及时进行维护,从而有效避免响应缓慢的情况,提高运维效率。附图说明图1是本发明cpu使用率监控方法的较佳实施例的流程图。图2是本发明cpu使用率监控装置的较佳实施例的功能模块图。图3是本发明实现cpu使用率监控方法的较佳实施例的电子设备的结构示意图。主要元件符号说明电子设备1存储器12处理器13cpu使用率监控装置11接收单元110获取单元112调取单元113展示单元114发出单元115计算单元116测试单元117具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。如图1所示,是本发明cpu使用率监控方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。所述cpu使用率监控方法应用于一个或者多个电子设备中,所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)、游戏机、交互式网络电视(internetprotocoltelevision,iptv)、智能式穿戴式设备等。所述电子设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloudcomputing)的由大量主机或网络服务器构成的云。所述电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)等。s10,接收cpu使用率监控指令。所述电子设备接收cpu使用率监控指令。在本发明的至少一个实施例中,市面的标准springboot产品通常不会对rocketmq的cpu(centralprocessingunit,中央处理器)使用率进行监控,而在传统的主机层面,cpu监控是包含操作系统所有进程统计的,因此也无法区分是应用java进程的cpu使用率过高,还是其他操作系统进程cpu使用率过高,这样,当cpu使用率出现飙高现象时,则可能会产生误判。另外,所述cpu使用率作为应用运维所关注的核心指标,如果偏高,应用系统可能会出现处理响应缓慢的情况,给用户的使用造成一定的影响。因此,通过本技术方案,所述电子设备能够实现对cpu使用率的监控,有效避免误判及处理响应缓慢的情况,进而提高运维效率。在本发明的至少一个实施例中,所述客户端包括rocketmq客户端,所述rocketmq客户端是一个队列模型的消息中间件,即:一个独立的系统软件或服务程序,位于客户机或服务器的操作系统之上,管理计算机资源和网络通讯,能够连接两个独立应用程序或者独立系统,并能够实现消息系统功能。具体地,所述cpu使用率是指运行的程序占用的cpu资源,因此,所述cpu使用率越高,说明同时运行的程序越多,反之则越少。所述cpu使用率的高低与cpu性能的高低有直接关系。在本发明的至少一个实施例中,所述电子设备接收cpu使用率监控指令包括以下一种或者多种的组合:(1)所述电子设备接收用户触发的所述cpu使用率监控指令。具体地,所述用户可以通过点击触发按键触发所述cpu使用率监控指令,所述触发按键可以是虚拟按键,或者是实体按键等。所述用户还可以输入对应的语音指令,以作为所述cpu使用率监控指令,本发明不限制。或者是,所述用户还可以输入指纹信息,以触发所述cpu使用率监控指令等。(2)所述电子设备接收所述电子设备每隔预设时间间隔触发所述cpu使用率监控指令的信号。具体地,所述预设时间间隔可以由所述电子设备进行配置,也可以由所述用户进行自定义配置,本发明不限制。例如:所述预设时间间隔可以是每隔1分钟等。(3)所述电子设备接收所述电子设备配置的在预设时间触发所述cpu使用率监控指令的信号。具体地,所述预设时间可以由所述电子设备进行配置,也可以由所述用户进行自定义配置,本发明不限制。例如:所述预设时间可以是12月1日上午10点等。(4)所述电子设备接收所述电子设备在配置状态下触发的所述cpu使用率监控指令。具体地,所述配置状态包括,但不限于所述电子设备运行卡顿的状态等,以使所述电子设备自动确定运行卡顿的原因。s11,根据所述监控指令调用rocketmq工具获取cpu状态。所述电子设备根据所述监控指令调用rocketmq工具获取cpu状态。在本发明的至少一个实施例中,所述cpu状态包括可用状态及不可用状态。具体地,所述可用状态是指所述电子设备处于运行状态;所述不可用状态是指所述电子设备处于死机状态或者关机状态等。可以理解的是,只有当所述cpu状态为可用状态时,所述电子设备才需要对所述cpu使用率监控指令做出响应。具体地,所述电子设备可以利用脚本rocketmq.sh检测所述rocketmq的cpu状态。例如:所述电子设备输入rocketmq.sh的相关脚本,根据所述脚本的编写方式,当输出为“rocketmqisnotrunning”时,则说明所述cpu状态为不可用,否则,说明所述cpu状态为可用。s12,当所述cpu状态为可用状态时,采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid(processidentification,进程标识符)。当所述cpu状态为可用状态时,所述电子设备采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid。在本发明的至少一个实施例中,linux中的ps(processstatus)命令用于显示出系统中当前运行的所有进程,以使所述电子设备查询所有进程。在本发明的至少一个实施例中,所述指定关键字包括namesrvstartup和brokerstartup,所述namesrvstartup和brokerstartup用于所述rocketmq中间件,是所述rocketmq中间件的运行脚本中的类名,因此,通过所述指定关键字namesrvstartup和brokerstartup,并调用所述ps命令,即可获取到所述rocketmq进程的pid。具体地,所述电子设备采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid包括:所述电子设备采用ps命令,从所有运行的进程中调取所述rocketmq的所有进程信息,并结合所述指定关键字namesrvstartup和brokerstartup,从所述所有进程信息中获取所述rocketmq进程的pid。例如:所述电子设备采用命令:pid=`ps-fcjava|grep"$instances"|egrep"namesrvstartup|brokerstartup"|awk'{print$2}',可以得到运行结果:[root@szc-l0075300rocketmq]#ps-fcjava|grep"rmq_lcloud-config-prd-ins5201"|egrep"namesrvstartup|brokerstartup"|awk'{print$2}'16056,因此,所述电子设备可以确定所述rocketmq进程的pid为16056。s13,根据所述pid,利用top命令调出当前cpu使用率。所述电子设备根据所述pid,利用top命令调出当前cpu使用率。在本发明的至少一个实施例中,所述top命令可以实时动态地查看系统的整体运行情况,用于显示系统运行的进程信息,且所述电子设备以实时文本信息显示所述进程信息。具体地,所述电子设备根据所述pid,利用top命令调出当前cpu使用率包括:所述电子设备根据所述pid,利用top命令,从所述所有运行的进程中调取所述rocketmq进程的资源信息,所述电子设备根据配置指令,从所述资源信息中获取当前cpu使用率。进一步地,所述资源信息包括,但不限于所述rocketmq进程的cpu使用率、内存占用率等。所述配置指令与所述cpu使用率相对应,例如:所述配置指令可以包括rocketmqcpu,以从所述资源信息中获取到所述当前cpu使用率。例如:所述电子设备采用top命令,并结合对应的pid16056及所述配置指令rocketmqcpu,形成命令rocketmqcpu=`top-b-n1-p$res2>&1|awk-vpid=$pid'{if($1==pid)print$9}',所述电子设备进而从所述rocketmq进程的资源信息中调出所述当前cpu使用率。s14,保存并展示所述当前cpu使用率。所述电子设备保存并展示所述当前cpu使用率。在本发明的至少一个实施例中,所述电子设备调出所述当前cpu使用率后,将所述当前cpu使用率保存至配置数据库,以方便调取。具体地,所述配置数据库可以是所述电子设备的本地数据库,也可以是与所述电子设备相通信的外部数据库等。进一步地,所述电子设备在保存所述当前cpu使用率至所述配置数据库后,所述电子设备可以从所述配置数据库中调取所述当前cpu使用率,并展示给所述用户,以方便所述用户进行直接查看。具体地,所述电子设备展示所述当前cpu使用率包括:所述电子设备通过grafana展示平台展示所述当前cpu使用率。具体地,所述grafana展示平台是一个可视化面板(dashboard),支持各种图表和布局展示,且支持graphite、zabbix、influxdb、prometheus和opentsdb作为数据源。所述grafana展示平台具有以下特性:具有灵活丰富的图形化选项,且可以混合多种风格,并支持白天和夜间模式,同时支持多个数据源。此时,所述配置数据库可以是所述grafana展示平台的非关系型数据库,以避免占用所述电子设备的运行内存。当然,在其他实施例中,所述电子设备也可以通过highcharts展示所述当前cpu使用率,本发明不限制。highcharts是一个用纯javascript语言编写的图表库,能够很简单、便捷地在web网站或是web应用程序添加有交互性的图表,且支持监控平台的各种图例。优选地,所述方法还包括:当所述当前cpu使用率大于或者等于第一配置值时,所述电子设备发出警报。具体地,所述第一配置值是一个预设的阈值,所述第一配置值可以由所述电子设备进行配置,也可以由所述用户根据实际需求进行配置,本发明不限制。例如,所述第一配置值可以是80%等,也就是说,当所述当前cpu使用率大于或者等于80%时,所述电子设备将发出警报。进一步地,所述电子设备可以发出报警提示音,并发送报警邮件及/或报警消息至相关工作人员,所述电子设备还可以在所述电子设备的显示器上显示报警信息等。具体地,所述相关工作人员可以包括,但不限于以下一种或者多种的组合:运维人员、开发人员、测试人员、项目经理等。通过上述实施方式,当所述当前cpu使用率过高时,所述电子设备可以及时提示所述相关工作人员,以方便所述相关工作人员进行及时响应,避免对所述电子设备的运行造成影响。优选地,所述方法还包括:所述电子设备获取上一个配置周期的初始cpu使用率,并计算所述当前cpu使用率与所述初始cpu使用率的第一差值,所述电子设备计算所述第一差值与所述初始cpu使用率的比值,当所述比值大于或者等于第二配置值时,所述电子设备发出警报。例如:所述当前cpu使用率为本周一上午10:00的采样数据为50%,所述电子设备获取上周一上午10:00的初始cpu使用率40%后,计算所述当前cpu使用率50%与所述初始cpu使用率40%的第一差值为10%,所述电子设备进一步计算出所述第一差值10%与所述初始cpu使用率40%的比值为25%,且大于所述第二配置值20%,则所述电子设备发出警报。具体地,所述第二配置值是一个预设的阈值,所述第二配置值可以由所述电子设备进行配置,也可以由所述用户根据实际需求进行配置,本发明不限制。通过上述实施方式,所述电子设备可以实现基线告警,以保证所述电子设备正常运行。优选地,所述方法还包括:所述电子设备对所述电子设备进行压力测试,以得到cpu模拟使用率,所述电子设备计算所述当前cpu使用率与所述cpu模拟使用率的第二差值,当所述第二差值的绝对值大于预设阈值时,所述电子设备发出警报。具体地,所述压力测试是指,通过模拟所述电子设备的实际使用场景,以实现对所述电子设备的实际运行指标的模拟测试。在本实施例中,所述电子设备模拟cpu运行场景,以得出所述cpu模拟使用率,再将所述cpu模拟使用率与所述当前cpu使用率(即当前的实际使用率)进行对比,以计算出所述第二差值,再通过比较所述第二差值的绝对值与所述预设阈值,分析出所述cpu运行是否存在异常。具体地,所述预设阈值作为比较的基准,可以辅助确定所述cpu运行的情况,例如:所述预设阈值可以是5%等。那么,所述第二差值的绝对值小于或者等于5%时,所述电子设备运行正常。而当所述第二差值的绝对值大于5%时,所述电子设备发出警报,例如:所述电子设备可以鸣笛提醒,或者是在所述grafana展示平台上弹出提示框,以提醒指定人员进行及时处理。综上所述,本发明能接收cpu使用率监控指令;根据所述监控指令调用rocketmq工具获取cpu状态;当所述cpu状态为可用状态时,采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid;根据所述pid,利用top命令调出当前cpu使用率;保存并展示所述当前cpu使用率。因此,本发明便于在发生异常时及时进行维护,从而有效避免响应缓慢的情况,提高运维效率。如图2所示,是本发明cpu使用率监控装置的较佳实施例的功能模块图。所述cpu使用率监控装置11包括接收单元110、获取单元112、调取单元113、展示单元114、发出单元115、计算单元116及测试单元117。本发明所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。接收单元110接收cpu使用率监控指令。在本发明的至少一个实施例中,市面的标准springboot产品通常不会对rocketmq的cpu使用率进行监控,而在传统的主机层面,cpu监控是包含操作系统所有进程统计的,因此也无法区分是应用java进程的cpu使用率过高,还是其他操作系统进程cpu使用率过高,这样,当cpu使用率出现飙高现象时,则可能会产生误判。另外,所述cpu使用率作为应用运维所关注的核心指标,如果偏高,应用系统可能会出现处理响应缓慢的情况,给用户的使用造成一定的影响。因此,通过本技术方案,所述电子设备能够实现对cpu使用率的监控,有效避免误判及处理响应缓慢的情况,进而提高运维效率。在本发明的至少一个实施例中,所述客户端包括rocketmq客户端,所述rocketmq客户端是一个队列模型的消息中间件,即:一个独立的系统软件或服务程序,位于客户机或服务器的操作系统之上,管理计算机资源和网络通讯,能够连接两个独立应用程序或者独立系统,并能够实现消息系统功能。具体地,所述cpu使用率是指运行的程序占用的cpu资源,因此,所述cpu使用率越高,说明同时运行的程序越多,反之则越少。所述cpu使用率的高低与cpu性能的高低有直接关系。在本发明的至少一个实施例中,所述接收单元110接收cpu使用率监控指令包括以下一种或者多种的组合:(1)所述接收单元110接收用户触发的所述cpu使用率监控指令。具体地,所述用户可以通过点击触发按键触发所述cpu使用率监控指令,所述触发按键可以是虚拟按键,或者是实体按键等。所述用户还可以输入对应的语音指令,以作为所述cpu使用率监控指令,本发明不限制。或者是,所述用户还可以输入指纹信息,以触发所述cpu使用率监控指令等。(2)所述接收单元110接收所述电子设备每隔预设时间间隔触发所述cpu使用率监控指令的信号。具体地,所述预设时间间隔可以由所述电子设备进行配置,也可以由所述用户进行自定义配置,本发明不限制。例如:所述预设时间间隔可以是每隔1分钟等。(3)所述接收单元110接收所述电子设备配置的在预设时间触发所述cpu使用率监控指令的信号。具体地,所述预设时间可以由所述电子设备进行配置,也可以由所述用户进行自定义配置,本发明不限制。例如:所述预设时间可以是12月1日上午10点等。(4)所述接收单元110接收所述电子设备在配置状态下触发的所述cpu使用率监控指令。具体地,所述配置状态包括,但不限于所述电子设备运行卡顿的状态等,以使所述电子设备自动确定运行卡顿的原因。获取单元112根据所述监控指令调用rocketmq工具获取cpu状态。在本发明的至少一个实施例中,所述cpu状态包括可用状态及不可用状态。具体地,所述可用状态是指所述电子设备处于运行状态;所述不可用状态是指所述电子设备处于死机状态或者关机状态等。可以理解的是,只有当所述cpu状态为可用状态时,所述电子设备才需要对所述cpu使用率监控指令做出响应。具体地,所述获取单元112可以利用脚本rocketmq.sh检测所述rocketmq的cpu状态。例如:所述电子设备输入rocketmq.sh的相关脚本,根据所述脚本的编写方式,当输出为“rocketmqisnotrunning”时,则说明所述cpu状态为不可用,否则,说明所述cpu状态为可用。当所述cpu状态为可用状态时,所述获取单元112采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid。在本发明的至少一个实施例中,linux中的ps(processstatus)命令用于显示出系统中当前运行的所有进程,以使所述电子设备查询所有进程。在本发明的至少一个实施例中,所述指定关键字包括namesrvstartup和brokerstartup,所述namesrvstartup和brokerstartup用于所述rocketmq中间件,是所述rocketmq中间件的运行脚本中的类名,因此,通过所述指定关键字namesrvstartup和brokerstartup,并调用所述ps命令,即可获取到所述rocketmq进程的pid。具体地,所述获取单元112采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid包括:所述获取单元112采用ps命令,从所有运行的进程中调取所述rocketmq的所有进程信息,所述获取单元112结合所述指定关键字namesrvstartup和brokerstartup,从所述所有进程信息中获取所述rocketmq进程的pid。例如:所述获取单元112采用命令:pid=`ps-fcjava|grep"$instances"|egrep"namesrvstartup|brokerstartup"|awk'{print$2}',可以得到运行结果:[root@szc-l0075300rocketmq]#ps-fcjava|grep"rmq_lcloud-config-prd-ins5201"|egrep"namesrvstartup|brokerstartup"|awk'{print$2}'16056,因此,所述获取单元112可以确定所述rocketmq进程的pid为16056。调取单元113根据所述pid,利用top命令调出当前cpu使用率。在本发明的至少一个实施例中,所述top命令可以实时动态地查看系统的整体运行情况,用于显示系统运行的进程信息,且所述电子设备以实时文本信息显示所述进程信息。具体地,所述调取单元113根据所述pid,利用top命令调出当前cpu使用率包括:所述调取单元113根据所述pid,利用top命令,从所述所有运行的进程中调取所述rocketmq进程的资源信息,所述调取单元113根据配置指令,从所述资源信息中获取当前cpu使用率。进一步地,所述资源信息包括,但不限于所述rocketmq进程的cpu使用率、内存占用率等。所述配置指令与所述cpu使用率相对应,例如:所述配置指令可以包括rocketmqcpu,以从所述资源信息中获取到所述当前cpu使用率。例如:所述调取单元113采用top命令,并结合对应的pid16056及所述配置指令rocketmqcpu,形成命令rocketmqcpu=`top-b-n1-p$res2>&1|awk-vpid=$pid'{if($1==pid)print$9}',所述调取单元113进而从所述rocketmq进程的资源信息中调出所述当前cpu使用率。展示单元114保存并展示所述当前cpu使用率。在本发明的至少一个实施例中,所述调取单元113调出所述当前cpu使用率后,所述展示单元114将所述当前cpu使用率保存至配置数据库,以方便调取。具体地,所述配置数据库可以是所述电子设备的本地数据库,也可以是与所述电子设备相通信的外部数据库等。进一步地,所述展示单元114在保存所述当前cpu使用率至所述配置数据库后,所述调取单元113可以从所述配置数据库中调取所述当前cpu使用率,并展示给所述用户,以方便所述用户进行直接查看。具体地,所述展示单元114展示所述当前cpu使用率包括:所述展示单元114通过grafana展示平台展示所述当前cpu使用率。具体地,所述grafana展示平台是一个可视化面板(dashboard),支持各种图表和布局展示,且支持graphite、zabbix、influxdb、prometheus和opentsdb作为数据源。所述grafana展示平台具有以下特性:具有灵活丰富的图形化选项,且可以混合多种风格,并支持白天和夜间模式,同时支持多个数据源。此时,所述配置数据库可以是所述grafana展示平台的非关系型数据库,以避免占用所述电子设备的运行内存。当然,在其他实施例中,所述展示单元114也可以通过highcharts展示所述当前cpu使用率,本发明不限制。highcharts是一个用纯javascript语言编写的图表库,能够很简单、便捷地在web网站或是web应用程序添加有交互性的图表,且支持监控平台的各种图例。优选地,所述方法还包括:当所述当前cpu使用率大于或者等于第一配置值时,发出单元115发出警报。具体地,所述第一配置值是一个预设的阈值,所述第一配置值可以由所述电子设备进行配置,也可以由所述用户根据实际需求进行配置,本发明不限制。例如,所述第一配置值可以是80%等,也就是说,当所述当前cpu使用率大于或者等于80%时,所述发出单元115将发出警报。进一步地,所述发出单元115可以发出报警提示音,并发送报警邮件及/或报警消息至相关工作人员,所述发出单元115还可以在所述电子设备的显示器上显示报警信息等。具体地,所述相关工作人员可以包括,但不限于以下一种或者多种的组合:运维人员、开发人员、测试人员、项目经理等。通过上述实施方式,当所述当前cpu使用率过高时,所述发出单元115可以及时提示所述相关工作人员,以方便所述相关工作人员进行及时响应,避免对所述电子设备的运行造成影响。优选地,所述方法还包括:所述获取单元112获取上一个配置周期的初始cpu使用率,计算单元116计算所述当前cpu使用率与所述初始cpu使用率的第一差值,所述计算单元116计算所述第一差值与所述初始cpu使用率的比值,当所述比值大于或者等于第二配置值时,所述发出单元115发出警报。例如:所述当前cpu使用率为本周一上午10:00的采样数据为50%,所述获取单元112获取上周一上午10:00的初始cpu使用率40%后,所述计算单元116计算所述当前cpu使用率50%与所述初始cpu使用率40%的第一差值为10%,所述计算单元116进一步计算出所述第一差值10%与所述初始cpu使用率40%的比值为25%,且大于所述第二配置值20%,则所述发出单元115发出警报。具体地,所述第二配置值是一个预设的阈值,所述第二配置值可以由所述电子设备进行配置,也可以由所述用户根据实际需求进行配置,本发明不限制。通过上述实施方式,所述电子设备可以实现基线告警,以保证所述电子设备正常运行。优选地,所述方法还包括:测试单元117对所述电子设备进行压力测试,以得到cpu模拟使用率,所述计算单元116计算所述当前cpu使用率与所述cpu模拟使用率的第二差值,当所述第二差值的绝对值大于预设阈值时,所述发出单元115发出警报。具体地,所述压力测试是指,通过模拟所述电子设备的实际使用场景,以实现对所述电子设备的实际运行指标的模拟测试。在本实施例中,所述测试单元117模拟cpu运行场景,以得出所述cpu模拟使用率,所述计算单元116再将所述cpu模拟使用率与所述当前cpu使用率(即当前的实际使用率)进行对比,以计算出所述第二差值,再通过比较所述第二差值的绝对值与所述预设阈值,分析出所述cpu运行是否存在异常。具体地,所述预设阈值作为比较的基准,可以辅助确定所述cpu运行的情况,例如:所述预设阈值可以是5%等。那么,所述第二差值的绝对值小于或者等于5%时,所述电子设备运行正常。而当所述第二差值的绝对值大于5%时,所述发出单元115发出警报,例如:所述发出单元115可以鸣笛提醒,或者是在所述grafana展示平台上弹出提示框,以提醒指定人员进行及时处理。综上所述,本发明能接收cpu使用率监控指令;根据所述监控指令调用rocketmq工具获取cpu状态;当所述cpu状态为可用状态时,采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid;根据所述pid,利用top命令调出当前cpu使用率;保存并展示所述当前cpu使用率。因此,本发明便于在发生异常时及时进行维护,从而有效避免响应缓慢的情况,提高运维效率。如图3所示,是本发明实现cpu使用率监控方法的较佳实施例的电子设备的结构示意图。所述电子设备1是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。所述电子设备1还可以是但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)、游戏机、交互式网络电视(internetprotocoltelevision,iptv)、智能式穿戴式设备等。所述电子设备1还可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述电子设备1所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)等。在本发明的一个实施例中,所述电子设备1包括,但不限于,存储器12、处理器13,以及存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如cpu使用率监控程序。本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备1还可以包括输入输出设备、网络接入设备、总线等。所称处理器13可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器13是所述电子设备1的运算核心和控制中心,利用各种接口和线路连接整个电子设备1的各个部分,及执行所述电子设备1的操作系统以及安装的各类应用程序、程序代码等。所述处理器13执行所述电子设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个cpu使用率监控方法实施例中的步骤,例如图1所示的步骤s10、s11、s12、s13、s14。或者,所述处理器13执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如:接收cpu使用率监控指令;根据所述监控指令调用rocketmq工具获取cpu状态;当所述cpu状态为可用状态时,采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid;根据所述pid,利用top命令调出当前cpu使用率;保存并展示所述当前cpu使用率。示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子设备1中的执行过程。例如,所述计算机程序可以被分割成接收单元110、获取单元112、调取单元113、展示单元114、发出单元115、计算单元116及测试单元117。所述存储器12可用于存储所述计算机程序和/或模块,所述处理器13通过运行或执行存储在所述存储器12内的计算机程序和/或模块,以及调用存储在存储器12内的数据,实现所述电子设备1的各种功能。所述存储器12可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器12可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。所述存储器12可以是电子设备1的外部存储器和/或内部存储器。进一步地,所述存储器12可以是集成电路中没有实物形式的具有存储功能的电路,如ram(random-accessmemory,随机存取存储器)、fifo(firstinfirstout,)等。或者,所述存储器12也可以是具有实物形式的存储器,如内存条、tf卡(trans-flashcard)等等。所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。结合图1,所述电子设备1中的所述存储器12存储多个指令以实现一种cpu使用率监控方法,所述处理器13可执行所述多个指令从而实现:接收cpu使用率监控指令;根据所述监控指令调用rocketmq工具获取cpu状态;当所述cpu状态为可用状态时,采用ps命令,结合指定关键字,从所有运行的进程中获取rocketmq进程的pid;根据所述pid,利用top命令调出当前cpu使用率;保存并展示所述当前cpu使用率。根据本发明优选实施例,所述处理器13还执行多个指令包括:采用ps命令,从所有运行的进程中调取所述rocketmq的所有进程信息;结合所述指定关键字namesrvstartup和brokerstartup,从所述所有进程信息中获取所述rocketmq进程的pid。根据本发明优选实施例,所述处理器13还执行多个指令包括:根据所述pid,利用top命令,从所述所有运行的进程中调取所述rocketmq进程的资源信息;根据配置指令,从所述资源信息中获取当前cpu使用率。根据本发明优选实施例,所述处理器13还执行多个指令包括:通过grafana展示平台展示所述当前cpu使用率。根据本发明优选实施例,所述处理器13还执行多个指令包括:当所述当前cpu使用率大于或者等于第一配置值时,发出警报。根据本发明优选实施例,所述处理器13还执行多个指令包括:获取上一个配置周期的初始cpu使用率;计算所述当前cpu使用率与所述初始cpu使用率的第一差值;计算所述第一差值与所述初始cpu使用率的比值;当所述比值大于或者等于第二配置值时,发出警报。根据本发明优选实施例,所述处理器13还执行多个指令包括:对所述电子设备进行压力测试,以得到cpu模拟使用率;计算所述当前cpu使用率与所述cpu模拟使用率的第二差值;当所述第二差值的绝对值大于预设阈值时,发出警报。具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1