一种针对Linux系统RPM包统计CPU占用率的方法及系统技术方案

技术编号:16837218 阅读:27 留言:0更新日期:2017-12-19 19:48
本发明专利技术提供一种针对Linux系统RPM包统计CPU占用率的方法和系统,计算步骤:读取Linux系统目录信息,获取从系统启动开始到当前时刻CPU运行的总节数和所有进程自启动后分别使用的CPU节拍数,进而得到所有进程的CPU占用率;定位步骤:定位每一进程,并分别将对应进程的CPU占用率累加到所属RPM包的CPU使用率上,遍历完所有进程后得到所述RPM包的CPU占用率;输出步骤:将获取的所述RPM包CPU占用率数据输出。本发明专利技术可实现自动计算进程的CPU占用率并确定进程所属的RPM包,进而对CPU占用率实现有效的监控和统计,避免系统瘫痪或崩溃的风险,保护设备的正常和稳定运行。

A method and system for statistical CPU occupancy of RPM packets in Linux system

The present invention provides a method and system for calculation steps, RPM packet statistics CPU occupancy rate of Linux system: the Linux system to read the directory information acquired from the system start to the present moment to beat number CPU CPU number and total running all the process from the start after use, and get all the process CPU occupancy rate positioning; steps: locating each process, and the corresponding process CPU occupancy rate is added to the RPM CPU package using rate were all obtained after the traversal process of the RPM package CPU occupancy rate; output steps: the RPM package CPU occupancy rate data output. The invention can automatically calculate the CPU occupancy rate of the process and determine the RPM package belonging to the process, so as to realize effective monitoring and statistics for the CPU occupancy rate, avoid the risk of system paralysis or collapse, and protect the normal and stable operation of the device.

【技术实现步骤摘要】
一种针对Linux系统RPM包统计CPU占用率的方法及系统
本专利技术涉及一种操作系统性能检测方法,属于软件测试领域,尤其涉及一种针对Linux系统RPM包统计CPU占用率的方法及系统。
技术介绍
在现有的操作系统中,对CPU性能的监控是保障计算机、服务器等设备稳定、正常运行的核心,其中对CPU任务占用率更是有效控制和合理CPU处理能力的关键。例如,在Windows操作系统中,提供了任务管理器这一工具,用户能够利用任务管理器查看到计算机当前运行的程序和进程的详细信息,并能够进行一些操作。在Linux操作系统中也有类似的工具,如top命令,能够查看当前系统中正在运行的进程的资源消耗情况。Linux系统下软件包通常是以RPM文件的方式进行安装,一个软件包中可能会包含多个进程,常用的top命令能够查看到的,仅仅是每一个进程的资源消耗情况,无法查询到系统中正在运行的进程所属的RPM包的资源占用情况。当需要定位系统中安装的RPM包资源使用情况时,在现有的Linux系统下无法实现。因此,不利于对Linux系统下的CPU占用率进行监控和统计,容易出现系统瘫痪或崩溃的风险,从而不能有效的保护设备的正常和稳定运行。如中国专利(授权公告号CN102750221B)公开了“一种针对Linux文件系统的性能测试方法”,该方法从三个维度来对Linux文件系统的性能进行评估,具体包括:微观读写带宽测试,通过模拟多个IO操作的应用场景对Linux文件系统微观读写带宽进行测试;事务操作吞吐量测试,通过基于随机概率的事务交叉循环操作方式对Linux文件系统的文件操作吞吐量进行测试;宏观典型应用模拟测试,通过基于多线程的可扩展负载模型构建方式对典型应用场景进行模拟从而评估Linux文件系统的真实工作性能。该方法虽然能够提高测试覆盖率,但仍然没有解决针对RPM包CPU占用率的统计和监控问题。
技术实现思路
本专利技术提供一种针对Linux系统RPM包统计CPU占用率的方法和系统,用以解决在Linux系统下,对安装的RPM包资源的CPU占用率无法有效统计和监控的问题,不能有效的保护设备的正常和稳定运行。本专利技术通过以下技术方案予以实现:一种针对Linux系统RPM包统计CPU占用率的方法,在系统中运行RPM包文件,并查询所述RPM软件的所有进程信息;计算步骤:读取Linux系统目录信息,获取从系统启动开始到当前时刻CPU运行的总节数和所有进程自启动后分别使用的CPU节拍数,进而得到所有进程的CPU占用率;定位步骤:定位每一进程,并分别将对应进程的CPU占用率累加到所属RPM包的CPU使用率上,遍历完所有进程后得到所述RPM包的CPU占用率;输出步骤:将获取的所述RPM包CPU占用率数据输出。如上所述的一种针对Linux系统RPM包统计CPU占用率的方法,所述计算步骤,通过读取Linux系统中/proc/stat文件的内容,获取从系统启动开始到当前时刻CPU运行的总节数,包括用户态运行时间、内核态运行时间、IO等待时间、其他等待时间、软中断时间、硬中断时间,将这些节拍值相加后即是系统自启动以来CPU运行的总节拍数。如上所述的一种针对Linux系统RPM包统计CPU占用率的方法,所述计算步骤,通过读取Linux系统中/proc/[pid]/stat文件中的内容,获取进程在用户态运行的时间节拍数、进程在内核态运行的时间节拍数、进程所有已死线程在用户态运行的节拍数、所有已死线程在内核态运行的节拍数,将这四个节拍数相加后就是进程自启动后使用的CPU节拍数。如上所述的一种针对Linux系统RPM包统计CPU占用率的方法,所述计算步骤中,计算某一进程CPU使用率的方法是在一个时间点获取此时的CPU总节拍数totalcputime1和对应进程的CPU使用节拍数processcputime1,间隔一段时间,再获取一次CPU总节拍数totalcputime2和此时进程的CPU使用节拍数processcputime2,利用公式:percent=100*(processcputime2-processcputime1)/(totalcputime2-totalcputime1)计算对应进程在这段时间的CPU使用率。如上所述的一种针对Linux系统RPM包统计CPU占用率的方法,所述定位步骤,根据所述计算步骤进程信息列表中进程号pid,通过读取/proc/[pid]/cmdline文件中的内容获取相应进程的完整运行路径,利用rpm-qf加进程完整运行路径来定位对应进程所属的RPM包。如上所述的一种针对Linux系统RPM包统计CPU占用率的方法,所述输出步骤,将所述定位步骤中得到的RPM包CPU占用率数据,安装每个RPM软件包的名称和CPU占用率信息以固定的格式输出到终端。一种针对Linux系统RPM包统计CPU占用率的系统,包括计算模块、定位模块和输出模块,所述计算模块用于将从系统启动开始到当前时刻CPU运行的总节数和所有进程自启动后分别使用的CPU节拍数,分别得到对应的所有进程的CPU占用率;所述定位模块用于在系统中根据每一进程的定位,将对应进程的CPU占用率累加到所属RPM包的CPU使用率上,得到所述RPM包的CPU占用率;所述输出步骤用于将获取的所述RPM包CPU占用率数据输出到终端设备。如上所述的一种针对Linux系统RPM包统计CPU占用率的系统,所述计算模块中设有第一寄存器、第二寄存器和计算单元,所述第一寄存器用于保存间隔时间获取的前后CPU总节拍数totalcputime1和totalcputime2,第二寄存器用于保存与CPU总节拍数totalcputime1和totalcputime2对应的进程CPU使用节拍数processcputime1和processcputime2,所述计算单元用于将获取的对应的进程CPU使用节拍数processcputime1和processcputime2的差值、CPU总节拍数totalcputime1和totalcputime2差值进行处理,获得对应进程在这段时间的CPU使用率。与现有技术相比,本专利技术的优点是:本专利技术的主要创新点在于基于目前系统提供的信息,自动计算进程的CPU占用率并确定进程所属的RPM包,进而对CPU占用率实现有效的监控和统计,避免系统瘫痪或崩溃的风险,保护设备的正常和稳定运行。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍。图1是本专利技术方法的流程图;图2是图1中所述计算步骤的流程图;图3是图1中所述定位步骤的流程图;图4是本专利技术系统的流程图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。如图1、图2、图3所示,本实施例一种针对Linux系统RPM包统计CPU占用率的方法,在系统中运行RPM包文件,并查询所述RPM软件的所有进程信息;计算步骤:读取Linux系统目录信息,获取从系统启动开始到当前时刻CPU运行的总节数和所有进程自启动后分别使用的CPU节拍数,进而得到所有进程本文档来自技高网
...
一种针对Linux系统RPM包统计CPU占用率的方法及系统

【技术保护点】
一种针对Linux系统RPM包统计CPU占用率的方法,其特征在于,在系统中运行RPM包文件,并查询所述RPM软件的所有进程信息;计算步骤:读取Linux系统目录信息,获取从系统启动开始到当前时刻CPU运行的总节数和所有进程自启动后分别使用的CPU节拍数,进而得到所有进程的CPU占用率;定位步骤:定位每一进程,并分别将对应进程的CPU占用率累加到所属RPM包的CPU使用率上,遍历完所有进程后得到所述RPM包的CPU占用率;输出步骤:将获取的所述RPM包CPU占用率数据输出。

【技术特征摘要】
1.一种针对Linux系统RPM包统计CPU占用率的方法,其特征在于,在系统中运行RPM包文件,并查询所述RPM软件的所有进程信息;计算步骤:读取Linux系统目录信息,获取从系统启动开始到当前时刻CPU运行的总节数和所有进程自启动后分别使用的CPU节拍数,进而得到所有进程的CPU占用率;定位步骤:定位每一进程,并分别将对应进程的CPU占用率累加到所属RPM包的CPU使用率上,遍历完所有进程后得到所述RPM包的CPU占用率;输出步骤:将获取的所述RPM包CPU占用率数据输出。2.根据权利要求1所述的一种针对Linux系统RPM包统计CPU占用率的方法,其特征在于,所述计算步骤,通过读取Linux系统中/proc/stat文件的内容,获取从系统启动开始到当前时刻CPU运行的总节数,包括用户态运行时间、内核态运行时间、IO等待时间、其他等待时间、软中断时间、硬中断时间,将这些节拍值相加后即是系统自启动以来CPU运行的总节拍数。3.根据权利要求1所述的一种针对Linux系统RPM包统计CPU占用率的方法,其特征在于,所述计算步骤,通过读取Linux系统中/proc/[pid]/stat文件中的内容,获取进程在用户态运行的时间节拍数、进程在内核态运行的时间节拍数、进程所有已死线程在用户态运行的节拍数、所有已死线程在内核态运行的节拍数,将这四个节拍数相加后就是进程自启动后使用的CPU节拍数。4.根据权利要求1所述的一种针对Linux系统RPM包统计CPU占用率的方法,其特征在于,所述计算步骤中,计算某一进程CPU使用率的方法是在一个时间点获取此时的CPU总节拍数totalcputime1和对应进程的CPU使用节拍数processcputime1,间隔一段时间,再获取一次CPU总节拍数totalcputime2和此时进程的CPU使用节拍数processcputime2,利用公式:percent=100*(processcputime2-processcputime1)/(totalcputi...

【专利技术属性】
技术研发人员:郭靖伟
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1