CN117632454A - Linux操作系统资源监控方法、装置、存储介质和电子设备 - Google Patents
Linux操作系统资源监控方法、装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN117632454A CN117632454A CN202210974570.5A CN202210974570A CN117632454A CN 117632454 A CN117632454 A CN 117632454A CN 202210974570 A CN202210974570 A CN 202210974570A CN 117632454 A CN117632454 A CN 117632454A
- Authority
- CN
- China
- Prior art keywords
- thread
- resource occupation
- upper limit
- operating system
- linux operating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000005070 sampling Methods 0.000 claims description 18
- 238000012806 monitoring device Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 5
- 230000000903 blocking effect Effects 0.000 abstract description 11
- 230000002159 abnormal effect Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种Linux操作系统资源监控方法、装置、存储介质和电子设备,所述方法应用于Linux操作系统的内核态,所述方法包括:响应于内核态启动信号,获取全部运行线程的资源占用数据以及内核态的总资源占用数据;若所述总资源占用数据大于总资源占用上限值,则关停异常运行的线程;所述异常运行的线程包括:资源占用数据大于其线程资源上限值的线程。本方案在用户态出现卡顿之前,直接由内核态对运行线程的资源占用数据进行监控,并及时关停异常运行的线程以释放系统资源,避免了用户态系统卡顿情况的出现,更进一步避免了用户态系统卡死的问题,提升了用户体验。
Description
技术领域
本申请涉及Linux操作系统资源监控技术领域,尤其涉及一种Linux操作系统资源监控方法、装置、存储介质和电子设备。
背景技术
Linux操作系统的体系架构分为用户态和内核态,用户态即上层应用程序的活动空间,而应用程序的运行需要依赖内核态提供系统资源,包括CPU资源、存储资源等。在系统启动后,为实现各应用程序的正常运行,系统内会同时运行多个线程,内核态对每一线程的运行数据进行记录。
由于系统资源有限,当某一线程的运行数据出现异常时,对应的应用程序会出现运行缓慢、卡顿的情况,严重时可能会导致系统无法正常运行。在这种情形下,需通过用户态触发查看线程资源占用情况的相关任务,以便于用户态对出现异常的线程进行处理。但此方式是在用户态已经发现应用程序异常或系统异常的情况下,在操作过程中卡顿明显之后,再由用户态触发查看各线程资源占用情况并对异常线程进行处理,影响用户体验,而且如果卡顿严重或用户处理不及时会直接导致系统卡死。
发明内容
本申请的目的在于提供一种Linux操作系统资源监控方法、装置、存储介质和电子设备,以解决现有技术中用户态对于运行异常的线程监控和处理不及时,导致系统卡顿甚至卡死的技术问题。
第一方面,本申请技术方案提供一种Linux操作系统资源监控方法,所述方法应用于Linux操作系统的内核态,所述方法包括:
响应于内核态启动信号,获取全部运行线程的资源占用数据以及内核态的总资源占用数据;
若所述总资源占用数据大于总资源占用上限值,则关停异常运行的线程;所述异常运行的线程包括:资源占用数据大于其线程资源上限值的线程。
在一些方案提供的Linux操作系统资源监控方法中,所述响应于内核态启动信号,获取全部运行线程的资源占用数据以及内核态的总资源占用数据的步骤之前还包括:
获取配置信息,所述配置信息包括依用户需求设定的所述总资源占用上限值及全部线程的资源上限值。
在一些方案提供的Linux操作系统资源监控方法中,所述资源占用数据包括处理器占用率,所述响应于内核态启动信号,获取全部运行线程的资源占用数据以及内核态的总资源占用数据的步骤中:
获取本次采集的每一线程的用户态运行时间utime1和内核态运行时间stime1;
获取前次采集的每一线程的用户态运行时间utime2和内核态运行时间stime2;
针对每一线程,根据用户态运行时间utime1、内核态运行时间stime1、用户态运行时间utime2、内核态运行时间stime2和采样时间间隔得到该线程的处理器占用率。
在一些方案提供的Linux操作系统资源监控方法中,所述线程资源上限值包括处理器占用率上限值;在所述若所述总资源占用数据大于总资源占用上限值,则关停异常运行的线程的步骤中:
所述异常运行的线程包括调度策略为先进先出,且处理器占用率大于其处理器占用率上限值的线程。
在一些方案提供的Linux操作系统资源监控方法中,在所述若所述总资源占用数据大于总资源占用上限值,则关停异常运行的线程的步骤中:
所述异常运行的线程包括:调度策略不为先进先出、优先级标识符表示低优先级,且处理器占用率大于其处理器占用率上限值的线程。
在一些方案提供的Linux操作系统资源监控方法中,所述资源占用数据包括内存占用率,所述响应于内核态启动信号,获取全部运行线程的资源占用数据以及内核态的总资源占用数据的步骤中包括:
获取每一线程占用的物理内存字节数;
针对每一线程,根据其占用的所述物理内存字节数与总内存字节数得到该线程的所述内存占用率。
在一些方案提供的Linux操作系统资源监控方法中,所述线程资源上限值包括内存占用率上限值;在所述若所述总资源占用数据大于总资源占用上限值,则关停异常运行的线程的步骤中:
所述异常运行的线程包括:优先级标识符表示低优先级,且内存占用率大于其内存占用率上限值的线程。
第二方面,本申请技术方案还提供一种Linux操作系统资源监控装置,所述装置被配置于Linux操作系统的内核态,所述装置包括:
信息监控模块,用于响应于内核态启动信号,获取全部运行线程的资源占用数据以及内核态的总资源占用数据;
线程关停模块,用于在所述总资源占用数据大于总资源占用上限值时,关停异常运行的线程;所述异常运行的线程包括:资源占用数据大于其线程资源上限值的线程。
第三方面,本申请技术方案中提供一种存储介质,被配置于Linux操作系统的内核态,所述存储介质中存储有程序信息,计算机读取所述程序信息后执行以上任一项所述的Linux操作系统资源监控方法。
第四方面,本申请技术方案中提供一种电子设备,被配置于Linux操作系统的内核态,所述电子设备包括至少一个处理器和至少一个存储器,至少一个所述存储器中存储有程序信息,至少一个所述处理器读取所述程序信息后执行以上任一项所述的Linux操作系统资源监控方法。
采用上述技术方案,具有以下有益效果:
本申请提供的Linux操作系统资源监控方法、装置、存储介质和电子设备,直接在Linux操作系统的内核态对运行线程的资源占用数据以及内核态的总资源占用数据进行监控,因为内核态的总资源占用数据大于总资源占用上限值时出现用户态应用程序或系统卡顿的概概率较大,所以本方案在此情况下直接关停处于异常运行状态的线程,异常运行可包括资源占用数据大于其线程资源上限值的线程,及时地将异常运行线程所占用的资源释放出来。相比于现有技术中,用户态出现卡顿的不良体验之后才进行资源监控和处理的方案,本方案在用户态出现卡顿之前,直接由内核态对运行线程的资源占用数据进行监控,并及时关停异常运行的线程以释放系统资源,避免了用户态系统卡顿情况的出现,更进一步避免了用户态系统卡死的问题,提升了用户体验。
附图说明
图1为本申请一实施例所述Linux操作系统资源监控方法的流程图;
图2为本申请另一实施例所述Linux操作系统资源监控方法的流程图;
图3为本申请另一实施例所述Linux操作系统资源监控方法的流程图;
图4为本申请另一实施例所述Linux操作系统资源监控方法的流程图;
图5为本申请一实施例所述Linux操作系统资源监控装置的结构框图;
图6为本申请一实施例所述电子设备的硬件连接关系示意图。
具体实施方式
下面结合附图来进一步说明本申请的具体实施方式。
容易理解,根据本申请的技术方案,在不变更本申请实质精神下,本领域的一般技术人员可相互替换的多种结构方式以及实现方式。因此,以下具体实施方式以及附图仅是对本申请的技术方案的示例性说明,而不应当视为本申请的全部或视为对申请技术方案的限定或限制。
在本说明书中提到或者可能提到的上、下、左、右、前、后、正面、背面、顶部、底部等方位用语是相对于各附图中所示的构造进行定义的,它们是相对的概念,因此有可能会根据其所处不同位置、不同占用状态而进行相应地变化。所以,也不应当将这些或者其他的方位用语解释为限制性用语。
本实施例提供一种Linux操作系统资源监控方法,所述方法应用于Linux操作系统的内核态,如图1所示,所述方法包括:
S10:响应于内核态启动信号,获取全部运行线程的资源占用数据以及内核态的总资源占用数据。
所述内核态启动信号可以根据Linux操作系统的启动信号来确定,一般Linux操作系统启动的同时,内核态也会启动。获取全部运行线程的资源占用数据以及内核态的总资源占用数据的步骤可实时进行,也可以按照设定采样周期进行,设定采样周期越短得到的监控结果越准确,当设定采样周期小到极限值时即可认为是实时,设定采样周期可以为1-600s。在Linux操作系统的内核态中配置有高精度定时器,在具体实现时可通过高精度定时器对时间进行精确监测和计时,即可保证本方法能按照设定采样周期对系统资源占用信息进行采集。线程的资源占用信息能够根据线程的运行情况直接得到,例如以动态的数据表格的方式记录每一线程的资源占用情况,本方案中可直接读取该数据表格即可。而资源占用信息可以包括如CPU占用率(百分比),内存占用率(百分比),磁盘占用率(百分比)、带宽占用率(百分比)等,当Linux操作系统启动后,内核态能够获取到系统内处于运行状态的全部线程的资源占用数据以及系统总资源占用数据。
S20:若所述总资源占用数据大于总资源占用上限值,则关停异常运行的线程;所述异常运行的线程包括:资源占用数据大于其线程资源上限值的线程。
总资源占用上限值可以为用户态出现卡顿情形时对应的总资源占用值,每一线程的资源上限值可以为该线程出现卡顿时对应的志远占用值,本方案中可以通过历史经验值确定上述信息。
本实施例提供的以上方案,直接在Linux操作系统的内核态对运行线程的资源占用数据以及内核态的总资源占用数据进行监控,因为内核态的总资源占用数据大于总资源占用上限值时出现用户态应用程序或系统卡顿的概概率较大,所以本方案在此情况下直接关停处于异常运行状态的线程,异常运行可包括资源占用数据大于其线程资源上限值的线程,及时地将异常运行线程所占用的资源释放出来。相比于现有技术中,用户态出现卡顿的不良体验之后才进行资源监控和处理的方案,本方案在用户态出现卡顿之前,直接由内核态对运行线程的资源占用数据进行监控,并及时关停异常运行的线程以释放系统资源,避免了用户态系统卡顿情况的出现,更进一步避免了用户态系统卡死的问题,提升了用户体验。
另外,以上方案中,只要响应到内核态启动信号,就会执行步骤S10和步骤S20,即确保监控各线程资源监控步骤的最高优先级,从而可以确保在内核态处于启动状态下优先执行资源信息监控的步骤。
以上方案中,如图2所示,在步骤S10之前,所述方法还可以包括如下步骤:
S01:获取配置信息,所述配置信息包括依用户需求设定的所述总资源占用上限值及全部线程的资源上限值。
具体实现时,可以在内核态的/proc/目录下,增加用户配置文件目录monitor,该目录与供用户输入信息的输入接口相对应,只要用户通过输入接口输入配置信息,即可将配置信息写入到该目录下。所述配置信息为用户依据自身需求进行配置,其中的配置信息可以包括如设定采样周期、各线程的处理器占用率的范围、各线程的内存占用率的范围等。所述内核态配置的输入接口用于接收配置信息,供用户根据自己的需求个性化设置配置信息。本方案能够支持用户动态设定各线程监控过程中的参数信息,使系统能用于更多场景,满足不同用户的需求。
如前所述,所述线程的资源占用数据包括线程的处理器占用率,则上述步骤S10中包括:
S101:获取本次采集的每一线程的用户态运行时间utime1和内核态运行时间stime1;获取前次采集的每一线程的用户态运行时间utime2和内核态运行时间stime2。
具体地,在Linux操作系统中,内核态处理器会对各个线程在运行过程中的处理器占用情况进行记录,该处理器占用情况包括在内核态的占用情况以及在用户态的占用情况,一般通过运行时间来表示。所以,在每次获取处理器占用率时,内核态获得线程的用户态运行时间utime1和内核态运行时间stime1,该运行时间的单位为ns。
102:针对每一线程,根据用户态运行时间utime1、内核态运行时间stime1、用户态运行时间utime2、内核态运行时间stime2和采样时间间隔得到该线程的处理器占用率。
具体地,可以通过如下公式得到所述线程的处理器占用率CPU_rate:
CPU_rate=(utime1+stime1–utime2–stime2)×100/(sample_time×NSEC_PSER_SEC);
其中,sample_time表示采样时间间隔,sample_time×NSEC_PSER_SEC表示将采样周期变换为以纳秒为单位的值,其中×100是为了将计算结果表示为百分比的形式。
通过本方式得到各个线程的处理器占用率,内核态能够直接获取到上述公式中的各个参数,数据获取简单且具有很小的运算量。
优选地,以上方案中,如图3所示,在步骤S01中,所述配置信息中还包括为每一所述线程设置的处理器占用率上限值和为所述线程设置的优先级标识符。即通过配置信息设定每个线程的处理器占用率上限值,正常情况下,处理器占用率的取值范围0-100,不同线程可以设置不同的上限值,当某一线程的处理器占用率超过上限值时,结合该线程的优先级标识符的设定值,确定是否需要停止当前线程。例如,优先级标识符为“1”表示停止线程,优先级标识符为“0”表示不需要停止线程,仅记录日志即可。
本方案中,在所述步骤S20中,若所述总资源占用数据大于总资源占用上限值则包括:
S201:关停调度策略为先进先出,处理器占用率大于其设置的处理器占用率上限值的线程。对于先进先出线程来说,只要处理器占用率超过设定的上限值,就很容易造成系统卡顿或卡死,因此,对于该类型的线程,在检测到处理器占用率大于其设置的处理器占用率上限值时直接停止所述线程,确保系统的正常运行。
S202:关停调度策略不为先进先出,优先级标识符表示应低优先级,且处理器占用率大于其设置的处理器占用率上限值的线程。
而,如果线程的调度策略不为先进先出线程,线程的优先级标识符表示高优先级,则在线程的处理器占用率大于其设置的处理器占用率上限值时记录日志。
对于不为先进先出线程的其他线程来说,当线程的处理器占用率超过上限值时,结合该线程的优先级标识符的设定值,确定是否需要停止当前线程,例如,如果优先级标识符为“1”则直接停止线程。该优先级标识符可以由用户在配置信息中自行设定,以满足用户需求。由此,用户可以根据需要对不同线程的优先级进行配置,可以选择优先关闭用户认为低优先级的线程。
以上方案在执行监控系统资源的同时,允许用户通过自定义配置监控参数,对异常占用处理器的线程进行处理,可以关停线程或记录异常结果的日志,增强Linux操作系统的稳定性和鲁棒性。
进一步地,在上述方案中,步骤S10中,所述线程的资源占用信息还包括线程的内存占用率,因此获取线程的资源占用信息的步骤还包括:
S103:获取每一线程占用的物理内存字节数。
在Linux操作系统中,线程占用物理内存字节数的统计方式包括四种:
基于VSS(Virtual Set Size)统计方式,虚拟耗用内存,包含共享库占用的内存;
基于RSS(Resident Set Size)统计方式,实际占用物理内存,包含共享库占用的内存;
基于PSS(Proportional Set Size)统计方式,实际占用的物理内存,比例分配共享库占用的内存;
基于USS(Unique Set Size)统计方式,线程独自占用的物理内存,不包含共享库占用的内存。
上述四种方式中,基于RSS统计方式得到结果更加合理,因为其统计的是线程实际占用的物理内存而且包含共享库占用的内存,其结果更准确,考虑因素更全面。
S104:针对每一线程,根据所述其占用的物理内存字节数与总内存字节数得到线程的内存占用率。在具体实现时,可以通过如下公式得到所述线程的内存占用率:
Mem_rate=rss×PAGE_SIZE×100/MemTotal;
其中,Mem_rate表示所述线程的内存占用率,rss表示所述线程实际占用的物理内存页的数量,单位是PAGE,而PAGE_SIZE是指每一页内存包含的字节数,因此rss×PAGE_SIZE即可表示线程占用的物理内存字节数,MemTotal表示可用总内存,×100是为了将结果转换为百分比的形式。通过本方案,能够通过非常简单的方式得到准确的线程内存占用率。
进一步地,如图4所示,上述方案中的Linux操作系统资源监控方法,所述配置信息还包括为线程设置的内存占用率上限值。在内核态中,可以按照物理内存在分配时的百分比,为每个线程的内存占用率设定上限值,某一线程的内存占用率超过设定的上限值时,结合优先级标识符判断是否直接停止该线程,例如优先级标识符为“1”表示停止线程,优先级标识符为“0”时表示记录日志。
在所述步骤S20中,若总资源占用数据大于总资源占用上限值,则包括:
S203:关停优先级标识符表示低优先级,内存占用率大于其设置的内存占用率上限值的线程。
而,如果线程的所述优先级标识符表示高优先级,则在线程的内存占用率大于其设置的内存占用率上限值时记录异常日志。
以上方案在执行监控系统资源的同时,允许用户通过自定义配置文件中的监控参数,对异常占用物理内存的线程进行处理,可以停止线程或记录日志,增强Linux操作系统的稳定性和鲁棒性。
在本申请实施例中还提供一种Linux操作系统资源监控装置,如图5所示,所述装置被配置于Linux操作系统的内核态50中,所述装置包括:
信息监控模块51,响应于内核态启动信号,获取全部运行线程的资源占用数据以及内核态的总资源占用数据。所述内核态启动信号可以根据Linux操作系统的启动信号来确定,一般Linux操作系统启动的同时,内核态也会启动。获取全部运行线程的资源占用数据以及内核态的总资源占用数据的步骤可实时进行,也可以按照设定采样周期进行,设定采样周期越短得到的监控结果越准确,当设定采样周期小到极限值时即可认为是实时,设定采样周期可以为1-600s。在Linux操作系统的内核态中配置有高精度定时器,在具体实现时可通过高精度定时器对时间进行精确监测和计时,即可保证本方法能按照设定采样周期对系统资源占用信息进行采集。线程的资源占用信息能够根据线程的运行情况直接得到,例如以动态的数据表格的方式记录每一线程的资源占用情况,本方案中可直接读取该数据表格即可。而资源占用信息可以包括如CPU占用率(百分比),内存占用率(百分比),磁盘占用率(百分比)、带宽占用率(百分比)等,当Linux操作系统启动后,内核态能够获取到系统内处于运行状态的全部线程的资源占用数据以及系统总资源占用数据。
线程关停模块52,若所述总资源占用数据大于总资源占用上限值,则关停异常运行的线程;所述异常运行的线程包括:资源占用数据大于其线程资源上限值的线程。
以上方案,直接在Linux操作系统的内核态对运行线程的资源占用数据以及内核态的总资源占用数据进行监控,因为内核态的总资源占用数据大于总资源占用上限值时出现用户态应用程序或系统卡顿的概概率较大,所以本方案在此情况下直接关停处于异常运行状态的线程,异常运行可包括资源占用数据大于其线程资源上限值的线程,及时地将异常运行线程所占用的资源释放出来。相比于现有技术中,用户态出现卡顿的不良体验之后才进行资源监控和处理的方案,本方案在用户态出现卡顿之前,直接由内核态对运行线程的资源占用数据进行监控,并及时关停异常运行的线程以释放系统资源,避免了用户态系统卡顿情况的出现,更进一步避免了用户态系统卡死的问题,提升了用户体验。
在一些方案中,上述装置还包括信息配置模块,用于获取配置信息,所述配置信息包括依用户需求设定的所述总资源占用上限值及全部线程的资源上限值。具体实现时,可以在内核态的/proc/目录下,增加用户配置文件目录monitor,该目录与供用户输入信息的输入接口相对应,只要用户通过输入接口输入配置信息,即可将配置信息写入到该目录下。所述配置信息为用户依据自身需求进行配置,其中的配置信息可以包括如设定采样周期、各线程的处理器占用率的范围、各线程的内存占用率的范围等。所述内核态配置的输入接口用于接收配置信息,供用户根据自己的需求个性化设置配置信息。本方案能够支持用户动态设定各线程监控过程中的参数信息,使系统能用于更多场景,满足不同用户的需求。
进一步地,信息监控模块51还用于获取本次采集的每一线程的用户态运行时间utime1和内核态运行时间stime1;获取前次采集的每一线程的用户态运行时间utime2和内核态运行时间stime2;针对每一线程,根据用户态运行时间utime1、内核态运行时间stime1、用户态运行时间utime2、内核态运行时间stime2和采样时间间隔得到该线程的处理器占用率。内核态能够直接获取到上述公式中的各个参数,数据获取简单且具有很小的运算量。
优选地,以上方案中,信息配置模块中,所述配置信息中还包括为每一所述线程设置的处理器占用率上限值和为所述线程设置的优先级标识符。线程关停模块52,用于执行:关停调度策略为先进先出,处理器占用率大于其设置的处理器占用率上限值的线程。关停调度策略不为先进先出,优先级标识符表示应低优先级,且处理器占用率大于其设置的处理器占用率上限值的线程。对于先进先出线程来说,只要处理器占用率超过设定的上限值,就很容易造成系统卡顿或卡死,因此,对于该类型的线程,在检测到处理器占用率大于其设置的处理器占用率上限值时直接停止所述线程,确保系统的正常运行。而,如果线程的调度策略不为先进先出线程,线程的优先级标识符表示高优先级,则在线程的处理器占用率大于其设置的处理器占用率上限值时记录日志。对于不为先进先出线程的其他线程来说,当线程的处理器占用率超过上限值时,结合该线程的优先级标识符的设定值,确定是否需要停止当前线程,例如,如果优先级标识符为“1”则直接停止线程。该优先级标识符可以由用户在配置信息中自行设定,以满足用户需求。由此,用户可以根据需要对不同线程的优先级进行配置,可以选择优先关闭用户认为低优先级的线程。以上方案在执行监控系统资源的同时,允许用户通过自定义配置监控参数,对异常占用处理器的线程进行处理,可以关停线程或记录异常结果的日志,增强Linux操作系统的稳定性和鲁棒性。
进一步地,信息监控模块51还用于获取每一线程占用的物理内存字节数,针对每一线程,根据所述其占用的物理内存字节数与总内存字节数得到线程的内存占用率。优选地,以上方案中,信息配置模块中,所述配置信息中还包括为所述线程设置的内存占用率上限值。在内核态中,可以按照物理内存在分配时的百分比,为每个线程的内存占用率设定上限值,某一线程的内存占用率超过设定的上限值时,结合优先级标识符判断是否直接停止该线程,例如优先级标识符为“1”表示停止线程,优先级标识符为“0”时表示记录日志。所述线程关停模块52还用于执行:关停优先级标识符表示低优先级,内存占用率大于其设置的内存占用率上限值的线程。而,如果线程的所述优先级标识符表示高优先级,则在线程的内存占用率大于其设置的内存占用率上限值时记录异常日志。以上方案在执行监控系统资源的同时,允许用户通过自定义配置文件中的监控参数,对异常占用物理内存的线程进行处理,可以停止线程或记录日志,增强Linux操作系统的稳定性和鲁棒性。
本申请实施例中还提供一种存储介质,被配置于Linux操作系统的内核态,所述存储介质中存储有程序信息,计算机读取所述程序信息后执行以上任一项方法实施例所述的Linux操作系统资源监控方法。
本申请实施例还提供一种电子设备,被配置于Linux操作系统的内核态,如图6所示,所述电子设备包括至少一个处理器61和至少一个存储器62,至少一个所述存储器62中存储有程序信息,至少一个所述处理器61读取所述程序信息后执行以上任一项方法实施例所述的Linux操作系统资源监控方法。所述电子设备还可以包括:输入装置63和输出装置64。处理器61、存储器62、输入装置63和输出装置64可以通信连接。存储器62作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器61通过运行存储在存储器62中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及数据处理,即实现上述任一方案提供的Linux操作系统资源监控方法。
根据需要,可以将上述各技术方案进行结合,以达到最佳技术效果。
以上的仅是本申请的原理和较佳的实施例。应当指出,对于本领域的普通技术人员来说,在本申请原理的基础上,还可以做出若干其它变型,也应视为本申请的保护范围。
Claims (10)
1.一种Linux操作系统资源监控方法,其特征在于,所述方法应用于Linux操作系统的内核态,所述方法包括:
响应于内核态启动信号,获取全部运行线程的资源占用数据以及内核态的总资源占用数据;
若所述总资源占用数据大于总资源占用上限值,则关停异常运行的线程;所述异常运行的线程包括:资源占用数据大于其线程资源上限值的线程。
2.根据权利要求1所述的Linux操作系统资源监控方法,其特征在于,所述响应于内核态启动信号,获取全部运行线程的资源占用数据以及内核态的总资源占用数据的步骤之前还包括:
获取配置信息,所述配置信息包括依用户需求设定的所述总资源占用上限值及全部线程的资源上限值。
3.根据权利要求2所述的Linux操作系统资源监控方法,其特征在于,所述资源占用数据包括处理器占用率,所述响应于内核态启动信号,获取全部运行线程的资源占用数据以及内核态的总资源占用数据的步骤中:
获取本次采集的每一线程的用户态运行时间utime1和内核态运行时间stime1;
获取前次采集的每一线程的用户态运行时间utime2和内核态运行时间stime2;
针对每一线程,根据用户态运行时间utime1、内核态运行时间stime1、用户态运行时间utime2、内核态运行时间stime2和采样时间间隔得到该线程的处理器占用率。
4.根据权利要求3所述的Linux操作系统资源监控方法,其特征在于,所述线程资源上限值包括处理器占用率上限值;在所述若所述总资源占用数据大于总资源占用上限值,则关停异常运行的线程的步骤中:
所述异常运行的线程包括调度策略为先进先出,且处理器占用率大于其处理器占用率上限值的线程。
5.根据权利要求3所述的Linux操作系统资源监控方法,其特征在于:在所述若所述总资源占用数据大于总资源占用上限值,则关停异常运行的线程的步骤中:
所述异常运行的线程包括:调度策略不为先进先出、优先级标识符表示低优先级,且处理器占用率大于其处理器占用率上限值的线程。
6.根据权利要求2所述的Linux操作系统资源监控方法,其特征在于,所述资源占用数据包括内存占用率,所述响应于内核态启动信号,获取全部运行线程的资源占用数据以及内核态的总资源占用数据的步骤中包括:
获取每一线程占用的物理内存字节数;
针对每一线程,根据其占用的所述物理内存字节数与总内存字节数得到该线程的所述内存占用率。
7.根据权利要求6所述的Linux操作系统资源监控方法,其特征在于,所述线程资源上限值包括内存占用率上限值;在所述若所述总资源占用数据大于总资源占用上限值,则关停异常运行的线程的步骤中:
所述异常运行的线程包括:优先级标识符表示低优先级,且内存占用率大于其内存占用率上限值的线程。
8.一种Linux操作系统资源监控装置,其特征在于,所述装置被配置于Linux操作系统的内核态,所述装置包括:
信息监控模块,用于响应于内核态启动信号,获取全部运行线程的资源占用数据以及内核态的总资源占用数据;
线程关停模块,用于在所述总资源占用数据大于总资源占用上限值时,关停异常运行的线程;所述异常运行的线程包括:资源占用数据大于其线程资源上限值的线程。
9.一种存储介质,其特征在于,所述存储介质被配置于Linux操作系统的内核态,所述存储介质中存储有程序信息,计算机读取所述程序信息后执行权利要求1-7任一项所述的Linux操作系统资源监控方法。
10.一种电子设备,其特征在于,所述电子设备被配置于Linux操作系统的内核态,所述电子设备包括至少一个处理器和至少一个存储器,至少一个所述存储器中存储有程序信息,至少一个所述处理器读取所述程序信息后执行权利要求1-7任一项所述的Linux操作系统资源监控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210974570.5A CN117632454A (zh) | 2022-08-15 | 2022-08-15 | Linux操作系统资源监控方法、装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210974570.5A CN117632454A (zh) | 2022-08-15 | 2022-08-15 | Linux操作系统资源监控方法、装置、存储介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117632454A true CN117632454A (zh) | 2024-03-01 |
Family
ID=90034395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210974570.5A Pending CN117632454A (zh) | 2022-08-15 | 2022-08-15 | Linux操作系统资源监控方法、装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117632454A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827596A (zh) * | 2024-03-05 | 2024-04-05 | 大连高德瑞信科技有限公司 | 一种安全可控线程实时监控方法及系统 |
-
2022
- 2022-08-15 CN CN202210974570.5A patent/CN117632454A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827596A (zh) * | 2024-03-05 | 2024-04-05 | 大连高德瑞信科技有限公司 | 一种安全可控线程实时监控方法及系统 |
CN117827596B (zh) * | 2024-03-05 | 2024-04-26 | 大连高德瑞信科技有限公司 | 一种安全可控线程实时监控方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10089212B2 (en) | Memory system, information processing system, and host device outputting debugging information through a host interface | |
EP2414932B1 (en) | Execution of a plugin according to plugin stability level | |
US8245002B2 (en) | Call stack protection | |
EP3352083A1 (en) | Debugging method, multi-core processor, and debugging equipment | |
CN106569891B (zh) | 一种存储系统中任务调度执行的方法和装置 | |
US20060259822A1 (en) | Profiling system | |
US8397048B2 (en) | Memory leak detection during dynamic memory allocation | |
US20070006172A1 (en) | Method and system of identifying overlays used by a program | |
US20100017583A1 (en) | Call Stack Sampling for a Multi-Processor System | |
US20080276129A1 (en) | Software tracing | |
WO2008080780A1 (en) | Recording execution information for a software application | |
CN114328102A (zh) | 设备状态监控方法、装置、设备及计算机可读存储介质 | |
CN117632454A (zh) | Linux操作系统资源监控方法、装置、存储介质和电子设备 | |
EP3274839B1 (en) | Technologies for root cause identification of use-after-free memory corruption bugs | |
JP7063445B2 (ja) | 障害情報処理プログラム、コンピュータ、障害通知方法、コンピュータシステム | |
CN107239377B (zh) | 获取Java虚拟机运行状态的方法和装置 | |
US10417121B1 (en) | Monitoring memory usage in computing devices | |
JP5627414B2 (ja) | 動作ログ収集システム及びプログラム | |
CN114741218A (zh) | 操作系统的异常指标提取方法、装置、设备、系统及介质 | |
CN112612578A (zh) | 一种虚拟机监控方法和装置 | |
CN114253825A (zh) | 内存泄漏检测方法、装置、计算机设备和存储介质 | |
CN113010336A (zh) | 应用处理器死机现场调试方法及应用处理器 | |
CN116483612B (zh) | 内存故障处理方法、装置、计算机设备和存储介质 | |
CN113157513B (zh) | 一种堆内存破坏检测方法、装置、电子设备及存储介质 | |
CN112559052B (zh) | 一种指令集调用方法、装置、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |