CN107544840A - 一种进程管理方法及装置 - Google Patents
一种进程管理方法及装置 Download PDFInfo
- Publication number
- CN107544840A CN107544840A CN201610491428.XA CN201610491428A CN107544840A CN 107544840 A CN107544840 A CN 107544840A CN 201610491428 A CN201610491428 A CN 201610491428A CN 107544840 A CN107544840 A CN 107544840A
- Authority
- CN
- China
- Prior art keywords
- blocking
- server
- turned
- currently
- client
- 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
Landscapes
- Computer And Data Communications (AREA)
Abstract
一种进程管理方法及装置,用以解决进程全部阻塞导致的服务器无法正常为客户端提供服务的问题。方法包括:确定服务器中当前已启动的至少一个进程中存在阻塞进程;当前已启动的至少一个进程全部阻塞时,判断当前已启动的至少一个进程的数量值是否等于服务器允许启动的进程的数量的最大值;若是,则终止阻塞进程中的部分阻塞进程,并启动至少一个进程;若否,则启动至少一个进程。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种进程管理方法及装置。
背景技术
Oracle数据库是一款关系数据库管理系统,简称Oracle,Oracle可采用两种服务器模式,即专用服务器模式与共享服务器模式。
专用服务器模式(DEDICATED):即一个客户端连接对应一个进程,每当有客户端向服务器发送请求时,就为该请求建立一个进程。
共享服务器模式(SHARE):即多个客户端连接对应一个进程,服务器中存在一个或多个进程调度器(dispatcher)来处理客户端的请求,进程调度器为多个客户端分别向服务器发送的请求建立一个进程。在客户端请求高度并发、且执行每个客户端请求时所消耗的资源较少的场景下,相比于Oracle采用专用服务器模式,Oracle采用共享服务器模式时建立的进程数量较少,从而大大减少为客户端的请求建立进程所消耗的资源。
在共享服务器模式下,当进程调度器中的进程因处理某一客户端的请求的时间过长时,会导致进程阻塞。当进程阻塞时,会导致服务器用于处理客户端请求的进程的数量减少,进而导致服务器的性能下降。特别是当服务器当前已启动的进程中全部进程均阻塞时,会导致服务器无法正常为客户端提供服务。
综上,Oracle采用共享服务器模式时存在由于服务器中进程全部阻塞导致的服务器无法正常为客户端提供服务的问题。
发明内容
本发明实施例提供一种进程管理方法及装置,用以解决Oracle采用共享服务器模式时由于服务器中进程全部阻塞导致的服务器无法正常为客户端提供服务的问题。
第一方面,本发明实施例提供一种进程管理方法,该方法应用于共享服务器模式下的Oracle服务器,该方法包括:
确定服务器中当前已启动的至少一个进程中存在阻塞进程;
当当前已启动的至少一个进程全部阻塞时,判断当前已启动的至少一个进程的数量值是否等于服务器允许启动的进程的数量的最大值;若是,则终止阻塞进程中的部分阻塞进程,并启动至少一个进程;若否,则启动至少一个进程。
无论当前已启动的阻塞进程的数量值是否等于服务器允许启动的进程的数量的最大值,采用上述方案后,均启动了新进程,因而可以解决由于服务器中进程全部阻塞导致的服务器无法正常为客户端提供服务的问题,使服务器能够正常为客户端提供服务;即,通过监控处理服务器中进程,实现快速且不中断地为客户端提供服务,提高用户体验。
在一种可能的设计中,该方法还包括:当当前已启动的至少一个进程未全部阻塞时,终止阻塞进程中的至少一个阻塞进程。
采用上述方案,在当前已启动的至少一个进程未全部阻塞时,终止阻塞进程中的至少一个阻塞进程,可以实现不中断为客户端提供服务的情况下,降低CPU的占用率,提高服务器性能。
在一种可能的设计中,在启动至少一个进程之后,还包括:当启动至少一个进程成功时,终止阻塞进程中除已终止进程之外的其他进程中的至少一个阻塞进程;和/或,在启动至少一个进程之后,还包括:当启动至少一个进程成功时,终止阻塞进程中的至少一个阻塞进程。
采用上述方案,在成功启动至少一个进程之后,终止阻塞进程中除已终止进程之外的其他进程中的至少一个阻塞进程,可以实现不中断为客户端提供服务的情况下,进一步降低CPU的占用率,提高服务器的性能;在成功启动至少一个进程成功后,终止阻塞进程中的至少一个阻塞进程,可以实现不中断为客户端提供服务的情况下,降低CPU占用率,提高服务器的性能。
在一种可能的设计中,终止阻塞进程中的至少一个阻塞进程之后,还包括:启动至少一个进程。
采用上述方案,在终止阻塞进程中的至少一个阻塞进程之后启动至少一个进程,可以为客户端提供服务,实现平滑解决由于进程阻塞带来的系统卡顿问题,把进程阻塞对客户端的影响降到很小,提高用户体验。
在一种可能的设计中,终止阻塞进程中的部分阻塞进程,具体包括:在阻塞进程中,将用于处理阻塞进程的中央处理器的占用率超过预设阈值的阻塞进程作为部分阻塞进程,并终止该部分阻塞进程。
采用上述方案,可以在终止部分阻塞进程的时候进行筛选,优先终止导致中央处理器的占用率超过预设的阈值的进程,可以更大程度地降低中央处理器的占用率,提高服务器的性能和运行效率。
第二方面,本发明实施例提供一种进程管理装置,该装置应用于共享服务器模式下的Oracle服务器,包括:
确定模块,用于确定服务器中当前已启动的至少一个进程中存在阻塞进程;
处理模块,用于当当前已启动的至少一个进程全部阻塞时,判断当前已启动的至少一个进程的数量值是否等于服务器允许启动的进程的数量的最大值;若是,则终止确定模块确定的阻塞进程中的部分阻塞进程并启动至少一个进程;若否,则启动至少一个进程。
无论当前已启动的阻塞进程的数量值是否等于服务器允许启动的进程的数量的最大值,采用上述方案后,均启动了新进程,因而可以解决由于服务器中进程全部阻塞导致的服务器无法正常为客户端提供服务的问题,使服务器能够正常为客户端提供服务;即,通过监控处理服务器中进程,实现快速且不中断地为客户端提供服务,提高用户体验。
在一种可能的设计中,处理模块还用于:当当前已启动的至少一个进程未全部阻塞时,终止阻塞进程中的至少一个阻塞进程。
采用上述方案,在当前已启动的至少一个进程未全部阻塞时,处理模块终止阻塞进程中的至少一个阻塞进程,可以实现不中断为客户端提供服务的情况下,降低CPU的占用率,提高服务器性能。
在一种可能的设计中,处理模块还用于:在启动至少一个进程的数量进程之后,当启动至少一个进程成功时,终止阻塞进程中除已终止进程之外的其他进程中的至少一个阻塞进程;和/或,在启动至少一个进程之后,当启动至少一个进程成功时,终止阻塞进程中的至少一个阻塞进程。
采用上述方案,在成功启动至少一个进程之后,处理模块终止阻塞进程中除已终止进程之外的其他进程中的至少一个阻塞进程,可以实现不中断为客户端提供服务的情况下,进一步降低CPU的占用率,提高服务器的性能;在成功启动至少一个进程成功后,处理模块终止阻塞进程中的至少一个阻塞进程,可以降低实现不中断为客户端提供服务的情况下,CPU占用率,提高服务器的性能。
在一种可能的设计中,处理模块还用于:在终止阻塞进程中的至少一个阻塞进程之后,启动至少一个进程。
采用上述方案,处理模块在终止阻塞进程中的至少一个阻塞进程之后启动至少一个进程,可以为客户端提供服务,实现平滑解决由于进程阻塞带来的系统卡顿问题,把进程阻塞对客户端的影响降到很小,提高用户体验。
在一种可能的设计中,处理模块在终止确定模块确定的阻塞进程中的部分阻塞进程时,具体用于:在确定模块确定的阻塞进程中,将用于处理阻塞进程的中央处理器的占用率超过预设阈值的阻塞进程作为部分阻塞进程,并终止该部分阻塞进程。
采用上述方案,处理模块可以在终止部分阻塞进程的时候进行筛选,优先终止导致中央处理器的占用率超过预设的阈值的进程,可以更大程度地降低中央处理器的占用率,提高服务器的性能和运行效率。
第三方面,本发明实施例提供一种进程管理装置,该装置应用于共享服务器模式下的Oracle服务器,包括:
存储器,用于存储服务器允许启动的进程的数量的最大值;
处理器,用于确定服务器中当前已启动的至少一个进程中存在阻塞进程;当当前已启动的至少一个进程全部阻塞时,判断当前已启动的至少一个进程的数量值是否等于所处存储器存储的服务器允许启动的进程的数量的最大值;若是,则终止阻塞进程中的部分阻塞进程,并启动至少一个进程;若否,则启动至少一个进程。
无论当前已启动的阻塞进程的数量值是否等于服务器允许启动的进程的数量的最大值,采用上述方案后,均启动了新进程,因而可以解决由于服务器中进程全部阻塞导致的服务器无法正常为客户端提供服务的问题,使服务器能够正常为客户端提供服务;即,通过监控处理服务器中进程,实现快速且不中断地为客户端提供服务,提高用户体验。
在一种可能的设计中,处理器还用于:当当前已启动的至少一个进程未全部阻塞时,终止阻塞进程中的至少一个阻塞进程。
采用上述方案,在当前已启动的至少一个进程未全部阻塞时,处理器终止阻塞进程中的至少一个阻塞进程,可以实现不中断为客户端提供服务的情况下,降低CPU的占用率,提高服务器性能。
在一种可能的设计中,处理器还用于:在终止阻塞进程中的至少一个阻塞进程之后,启动至少一个进程。
采用上述方案,处理器在终止阻塞进程中的至少一个阻塞进程之后启动至少一个进程,可以为客户端提供服务,实现平滑解决由于进程阻塞带来的系统卡顿问题,把进程阻塞对客户端的影响降到很小,提高用户体验。
在一种可能的设计中,存储器还用于:存储预设的阈值;
处理器在终止阻塞进程中的部分阻塞进程时,具体用于:在阻塞进程中,将用于处理阻塞进程的中央处理器的占用率超过预设阈值的阻塞进程作为部分阻塞进程,并终止该部分阻塞进程。
采用上述方案,处理器可以在终止部分阻塞进程的时候进行筛选,优先终止导致中央处理器的占用率超过存储器存储的预设的阈值的进程,可以更大程度地降低中央处理器的占用率,提高服务器的性能和运行效率。
第四方面,本发明实施例提供一种Oracle服务器,该Oracle服务器包括前述第三方面所述的进程管理装置。
无论当前已启动的阻塞进程的数量值是否等于服务器允许启动的进程的数量的最大值,采用上述方案后,均启动了新进程,因而可以解决由于服务器中进程全部阻塞导致的服务器无法正常为客户端提供服务的问题,使服务器能够正常为客户端提供服务;即,通过监控处理服务器中进程,实现快速且不中断地为客户端提供服务,提高用户体验。
附图说明
图1为现有技术中Oracle采用共享服务器模式时进程调度器的工作流程;
图2为本发明实施例提供的一种进程管理方法流程示意图;
图3为本发明实施例提供的另一种进程管理方法流程示意图;
图4为本发明实施例提供的一种进程管理装置的结构示意图;
图5为本发明实施例提供的另一种进程管理装置的结构示意图。
具体实施方式
为了更好地理解本发明实施例的上述目的、方案和优势,下文提供了详细描述。该详细描述通过使用框图、流程图等附图和/或示例,阐明了装置和/或方法的各种实施方式。在这些框图、流程图和/或示例中,包含一个或多个功能和/或操作。本领域技术人员将理解到:这些框图、流程图或示例内的各个功能和/或操作,能够通过各种各样的硬件、软件、固件单独或共同实施,或者通过硬件、软件和固件的任意组合实施。
本发明实施例提供的进程阻塞的处理方法及装置适用于Oracle数据库,Oracle数据库是一款关系数据库管理系统,简称Oracle。Oracle可采用两种服务器模式,即专用服务器模式与共享服务器模式。Oracle Application Express简称Oracle APEX,Oracle开发人员可以利用Oracle APEX开发安全、专业的网页应用程序。Oracle APEX作为一个网页应用程序开发工具,其服务器在同一时间会接收到来自多个客户端的请求,因此,当使用OracleAPEX进行网页开发时,Oracle应采用共享服务器模式。
Oracle采用共享服务器模式时,服务器会通过进程调度器(dispatcher)来接收客户端的请求,并在对客户端的请求进行处理后,通过进程调度器将对该请求的响应发送给客户端。如图1所示,进程调度器接收到客户端的请求后,将该请求置于系统全局区(SystemGlobal Area,SGA)的请求队列中。由于采用共享服务器模式时,多个客户端连接对应服务器中的一个进程,即多个客户端连接对应服务器中的一个进程调度器,因而一个进程调度器会接收到多个客户端的请求。每当进程调度器接收到一个请求时,进程调度器就将该请求置于请求队列中,服务器按请求队列中的顺序依次对请求队列中的请求进行处理,处理完成后,将对该请求的响应置于系统全局区的响应队列中,进程调度器按照响应队列中的顺序依次将响应队列中的响应取出,并发送给相应的客户端。
Oracle采用共享服务器模式时,服务器允许同时启动的进程调度器的数量有上限要求,比如,目前常见的服务器允许同时启动最多5个进程。其中,每一个进程调度器的工作流程如图1所示。
服务器中的一个进程用来处理一个请求队列中的多个请求,因此,上述多个请求是串行处理的,即该进程只有在一个请求处理完成后,才会处理下一个请求,当某一个请求处理时间过长时,请求队列中的其他请求只能在请求队列中排队等待,同时,该进程调度器在收到新的请求时,仍会将新的请求置于请求队列中。这种情况下,某一个请求处理时间过长会导致其他请求置于请求队列中得不到处理,也就是“进程阻塞”。
当进程阻塞时,该进程对应的请求队列中的请求就无法得到及时的处理。对于服务器而言,当前已启动的进程中全部进程均阻塞时,服务器中没有可以用来正常处理客户端的请求的进程,服务器也就无法正常为客户端提供服务。
此外,当服务器当前已启动的进程中存在阻塞进程时,用于处理该进程的中央处理器(Central Processing Unit,CPU)占用率会变得很高,甚至CPU占用率会达到100%。CPU占用率较高会导致服务器性能下降,系统运行缓慢,甚至导致系统崩溃。
而Oracle采用专用服务器模式时,每当有客户端向服务器发送请求时,就为该请求建立一个进程,该请求处理完成后,为该请求所建立的进程就被释放掉。当某一个请求处理时间过长时,服务器仍能通过为其他请求建立进程来处理其他请求。此外,用户也可通过客户端的操作将该请求与服务器的连接断开。因此,Oracle采用专用服务器模式时,某一个请求处理时间过长不会引起其他请求的排队等待,其他请求的处理无需等待上述某一个请求处理完成后再进行处理。如果某一个请求处理时间过长导致CPU占用率较高,那么,在该请求处理完成时或者通过客户端的操作将该请求与服务器的连接断开后,CPU的占用率即会降低。因而,Oracle采用专用服务器模式时不存在进程阻塞导致的CPU占用率高的问题。
为了解决上述Oracle采用共享服务器模式时由于服务器中进程全部阻塞导致的服务器无法正常为客户端提供服务的问题,本发明实施例提供一种进程管理方法及装置,首先确定服务器中当前已启动的至少一个进程中存在阻塞进程;当当前已启动的至少一个进程全部阻塞时,判断当前已启动的至少一个进程的数量值是否等于服务器允许启动的进程的数量的最大值;若是,则终止阻塞进程中的部分阻塞进程,并启动至少一个进程;若否,则启动至少一个进程。本发明实施例中,无论当前已启动的阻塞进程的数量值是否等于服务器允许启动的进程的数量的最大值,均启动了新进程,因而可以解决由于服务器中进程全部阻塞导致的服务器无法正常为客户端提供服务的问题,使服务器能够正常为客户端提供服务;即,通过监控处理服务器中进程,实现快速且不中断地为客户端提供服务,提高用户体验。
此外,当当前已启动的阻塞进程的数量值等于服务器允许启动的进程的数量的最大值时,终止了阻塞进程中的部分阻塞进程,因而可以在不中断为客户端提供服务的情况下,达到降低CPU占用率的效果,提高服务器性能。
因此,针对共享服务器模式下的Oracle,通过本发明实施例提供的技术方案,可以解决由于服务器中进程全部阻塞导致的服务器无法正常为客户端提供服务的问题,使服务器能够快速且不中断地为客户端提供服务的同时,也降低了CPU的占用率,从而提升了用户体验,提高了服务器性能。
下面,结合附图对本发明实施例进行详细说明。
本发明实施例提供一种进程管理方法,应用于共享服务器模式下的Oracle服务器。如图2所示,该方法的流程如下:
S201:确定所服务器中当前已启动的至少一个进程中存在阻塞进程;
在判断某一进程是否为阻塞进程时,可通过查询该进程当前的CPU占用率来判断,比如,当某一进程当前CPU占用率超过预设的占用率阈值(比如99%)时,则可以判断该进程为阻塞进程。
当服务器出现性能降低、系统卡顿或者运行效率低的现象时,通过诸如上述查询CPU占用率的方法判断某一进程是否为阻塞进程,可以对服务器中的进程进行监控,从而针对服务器中当前已启动的进程的阻塞情况,采取不同的处理,解决由于服务器中进程阻塞导致的服务器无法正常为客户端提供服务的问题,使服务器能够正常为客户端提供服务。
S202:当当前已启动的至少一个进程全部阻塞时,判断当前已启动的至少一个进程的数量值是否等于所述服务器允许启动的进程的数量的最大值;若是,则执行步骤S203;若否,则执行步骤S205。
Oracle采用共享服务器模式时服务器允许同时启动的进程器的数量有上限要求,比如,目前常见的服务器允许同时启动最多5个进程,即服务器允许启动的进程的数量的最大值为5。
S203:终止阻塞进程中的部分阻塞进程;
将阻塞进程中的部分阻塞进程终止后,CPU的占用率会降低。
终止部分阻塞进程的情况下,未终止的进程仍可接收客户端的请求,不会导致服务器中断服务。
在S203中,终止阻塞进程中的部分阻塞进程时,可以将用于处理阻塞进程的中央处理器的占用率超过预设阈值的阻塞进程作为部分阻塞进程,并终止该部分阻塞进程。在终止阻塞进程中的部分阻塞进程时,可以根据预设的阈值进行筛选,优先终止中央处理器的占用率超过预设的阈值的进程,从而可以更大程度地降低CPU的占用率,提高服务器的性能和运行效率。比如,预设的阈值可以是99%,处理阻塞进程1的中央处理器的占用率为100%,处理阻塞进程2的中央处理器的占用率为98%,处理阻塞进程3的中央处理器的占用率为97%,那么,在终止阻塞进程中的部分阻塞进程时,优先终止阻塞进程1。
S204:启动至少一个进程;
如果当前已启动的至少一个进程的数量值等于服务器允许启动的进程的数量的最大值,那么服务器此时就不能再启动新进程了,而只能通过步骤S203先终止阻塞进程中的部分阻塞进程,然后再启动至少一个进程,比如,终止阻塞进程中的一个阻塞进程,然后再启动一个进程。
启动至少一个进程后,服务器即可正常为客户端提供服务。
步骤S204中,需要限制启动的进程的数量,以保证启动的进程的总数不大于服务器允许启动的进程的数量的最大值。
可选地,在步骤S204中启动至少一个进程成功之后,还可以终止阻塞进程中除已终止进程之外的其他进程中的至少一个阻塞进程;
步骤S203中虽然终止了阻塞进程中的部分阻塞进程,但是,阻塞进程中除已终止进程之外的其他进程仍然会占用大量CPU资源、影响服务器的性能,因此,可以在启动至少一个进程成功后,将阻塞进程中除已终止进程之外的其他进程终止,从而在不中断为客户端提供服务的情况下,更大程度地降低CPU占用率,提高服务器的性能。
终止阻塞进程中除已终止进程之外的其他进程之后,还可以再启动至少一个进程,用来处理客户端的请求、为客户端提供服务,从而平滑解决由于进程阻塞带来的系统卡顿问题,把进程阻塞对客户端的影响降到很小,提升用户体验。
S205:启动至少一个进程。
由于当前已启动的至少一个进程的数量值不等于服务器允许启动的进程的数量的最大值,因而服务器仍可启动至少一个进程,用来处理客户端的请求。
可选地,在步骤S205中启动至少一个进程成功之后,还可以终止阻塞进程中的至少一个阻塞进程,从而在不中断为客户端提供服务的情况下,降低CPU占用率,提高服务器的性能。
较佳地,可终止阻塞进程中的全部阻塞进程。
如果将阻塞进程全部终止了,就会导致服务器停止接收外部请求,即服务器中断服务。因此在终止阻塞进程中的全部进程之前,需要执行步骤S205,即先启动至少一个进程,那么启动的至少一个进程就可在终止全部阻塞进程后处理客户端的请求,从在保证服务器不中断为客户端提供服务的情况下,降低CPU的占用率,提高服务器的性能。
终止阻塞进程中的至少一个阻塞进程之后,还可以再启动至少一个进程,用来处理客户端的请求、为客户端提供服务,从而实现平滑解决由于进程阻塞带来的系统卡顿问题,把进程阻塞对客户端的影响降到很小,提高用户体验。
可选地,当当前已启动的至少一个进程未全部阻塞时,终止阻塞进程中的至少一个阻塞进程。
当服务器当前已启动的至少一个进程中存在未阻塞进程时,未阻塞进程可以处理客户端的请求,为客户端提供服务。将阻塞进程中的至少一个阻塞进程终止后,用于处理该至少一个阻塞进程的CPU的占用率会降低,在提高了服务器的性能的同时,服务器中的未阻塞进程可正常为客户端提供服务。
当当前已启动的至少一个进程未全部阻塞时,终止阻塞进程中的一个阻塞进程,即可在不中断为客户端提供服务的情况下达到降低CPU占用率、提高服务器性能的效果。由于剩余阻塞进程仍然会占用大量CPU资源、影响服务器的性能,因此,较佳的方法是:当当前已启动的至少一个进程未全部阻塞时,终止阻塞进程中的全部进程,从而在不中断为客户端提供服务的情况下更大程度地降低CPU的占用率,提高服务器的性能。
在终止阻塞进程中的至少一个阻塞进程之后,还可以启动至少一个进程,用来处理客户端的请求、为客户端提供服务,从而,实现平滑解决由于进程阻塞带来的系统卡顿问题,把进程阻塞对客户端的影响降到很小,提升用户体验。
此外,在图2所示的进程管理方法中,无论执行何种操作,均须保证服务器中当前已启动的进程的数量值不超过服务器允许启动的进程的数量的最大值。
图3为图2所示的进程管理方法的一个举例,图3所示的进程管理方法的流程如下:
S301:确定服务器中当前已启动的至少一个进程中存在阻塞进程;
如果当前已启动的至少一个进程中不存在阻塞进程,则流程结束。
S302:判断当前已启动的至少一个进程是否全部阻塞,若是,则执行步骤S304,若否,则执行步骤S303;
S303:终止阻塞进程中的至少一个阻塞进程;
当服务器当前已启动的至少一个进程中存在未阻塞进程时,未阻塞进程可以用于处理客户端的请求,为客户端提供服务。将阻塞进程中的至少一个阻塞进程终止后,用于处理该至少一个阻塞进程的CPU的占用率会降低,从而可以在不中断为客户端提供服务的前提下提升服务器的性能。
当当前已启动的至少一个进程未全部阻塞时,终止阻塞进程中的一个阻塞进程,即可在不中断为客户端提供服务的情况下达到降低CPU占用率、提高服务器性能的效果。由于剩余阻塞进程仍然会占用大量CPU资源、影响服务器的性能,因此,步骤S303中,较佳的方法是终止阻塞进程中的全部进程,从而在不中断为客户端提供服务的情况下更大程度地降低CPU的占用率,提高服务器的性能。
步骤S303中,终止阻塞进程中的至少一个阻塞进程之后,还可以启动至少一个进程,用来处理客户端的请求、为客户端提供服务,从而,实现平滑解决由于进程阻塞带来的系统卡顿问题,把进程阻塞对客户端的影响降到很小,提升用户体验。
S304:判断当前已启动的至少一个进程的数量值是否等于服务器允许启动的进程的数量的最大值,若是则执行步骤S305,若否,则执行步骤S309;
S305:终止阻塞进程中的部分阻塞进程;
可选地,终止阻塞进程中的部分阻塞进程时,可以将阻塞进程中,用于处理阻塞进程的中央处理器的占用率超过预设阈值的阻塞进程作为部分阻塞进程,并终止该部分阻塞进程,从而可以更大程度地降低CPU的占用率,提高服务器的性能和运行效率。比如,预设的阈值可以是99%,在终止阻塞进程中的部分阻塞进程时,可以根据预设的阈值进行筛选,优先终止中央处理器的占用率超过预设的阈值的进程,比如,处理阻塞进程1的中央处理器的占用率为100%,处理阻塞进程2的中央处理器的占用率为98%,处理阻塞进程3的中央处理器的占用率为97%,那么,在终止阻塞进程中的部分阻塞进程时,优先终止阻塞进程1。
S306:启动至少一个进程;
如果当前已启动的至少一个进程的数量值等于服务器允许启动的进程的数量的最大值,那么服务器此时就不能再启动进程了,而只能通过步骤S305先终止阻塞进程中的部分阻塞进程,然后再启动至少一个进程,比如,终止阻塞进程中的一个阻塞进程,然后再启动一个进程。
启动至少一个进程后,服务器即可正常为客户端提供服务。
步骤S306中,需要限制启动的进程的数量,以保证启动的进程的总数不大于服务器允许启动的进程的数量的最大值。
S307:判断步骤S306中启动进程是否成功,若是,则执行步骤S308,若否,则返回执行步骤S306;
S308:终止阻塞进程中除已终止进程之外的其他进程;
步骤S305中虽然终止了阻塞进程中的部分阻塞进程,但是,阻塞进程中除已终止进程之外的其他进程仍然会占用大量CPU资源、影响服务器的性能,因此,可以在步骤S306所执行的启动进程的操作成功后,将阻塞进程中除已终止进程之外的其他进程终止,从而在不中断为客户端提供服务的情况下,更大程度地降低CPU占用率,提高服务器的性能。
步骤S308中,终止阻塞进程中除已终止进程之外的其他进程之后,还可以再启动至少一个进程,用来处理客户端的请求、为客户端提供服务,从而平滑解决由于进程阻塞带来的系统卡顿问题,把进程阻塞对客户端的影响降到很小,提升用户体验。
S309:启动至少一个进程;
S310:判断步骤S309中启动进程是否成功,若是,则执行步骤S311,若否,则返回执行步骤S309;
S311:终止阻塞进程中的至少一个阻塞进程;
步骤S309中虽然已启动了至少一个进程用来处理客户端的请求,即服务器已经能正常为客户端提供服务了。进一步地,为了降低CPU的占用率、提高服务器性能,还可以在成功启动了至少一个进程之后,终止阻塞进程中的至少一个阻塞进程。
较佳地,步骤S311中可终止阻塞进程中的全部阻塞进程。
如果将阻塞进程全部终止了,就会导致服务器停止接收外部请求,即服务器中断服务。因此在终止阻塞进程中的全部进程之前,需要先启动至少一个进程,那么启动的至少一个进程就可在终止全部阻塞进程后处理客户端的请求,从而在保证服务器不中断为客户端提供服务的情况下,降低CPU的占用率,提高服务器的性能。
步骤S311中,终止阻塞进程中的至少一个阻塞进程之后,还可以再启动至少一个进程,用来处理客户端的请求、为客户端提供服务,从而实现平滑解决由于进程阻塞带来的系统卡顿问题,把进程阻塞对客户端的影响降到很小,提高用户体验。
此外,在图3所示的进程管理方法中,无论执行哪一步操作,均须保证服务器中当前已启动的进程的数量不超过服务器允许启动的进程的数量的最大值。
图3为图2所示的进程管理方法的一个举例,在图3中未详尽描述的实施方式及相应操作的技术效果可参见图2中的相关描述。
本发明实施例还提供一种进程管理装置,图4为该进程管理装置的结构示意图,该进程管理装置400可采用图2或图3对应的实施例提供的方法。该进程管理装置400包括:
确定模块401,用于确定服务器中当前已启动的至少一个进程中存在阻塞进程;
处理模块402,用于当当前已启动的至少一个进程全部阻塞时,判断当前已启动的至少一个进程的数量值是否等于服务器允许启动的进程的数量的最大值;若是,则终止确定模块401确定的阻塞进程中的部分阻塞进程并启动至少一个进程;若否,则启动至少一个进程。
可选地,处理模块402还用于:当当前已启动的至少一个进程未全部阻塞时,终止阻塞进程中的至少一个阻塞进程。
可选地,处理模块402还用于:在启动至少一个进程之后,当启动至少一个进程成功时,终止阻塞进程中除已终止进程之外的其他进程中的至少一个阻塞进程;和/或,在启动至少一个进程之后,当启动至少一个进程成功时,终止阻塞进程中的至少一个阻塞进程。
可选地,处理模块402还用于:在终止阻塞进程中的至少一个阻塞进程之后,启动至少一个进程。
可选地,处理模块402在终止确定模块401确定的阻塞进程中的部分阻塞进程时,具体用于:在确定模块401确定的阻塞进程中,将用于处理阻塞进程的中央处理器的占用率超过预设阈值的阻塞进程作为部分阻塞进程,并终止该部分阻塞进程。
图4所示的进程管理装置400可用于执行图2或图3所示的进程管理方法。对图4所示的进程管理装置400未详尽描述的实施方式及相应操作的技术效果,可参见图2或图3中的相关描述。
需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供另一种进程管理装置,图5为该进程管理装置的结构示意图,该进程管理装置500可用于执行图2或图3所示的进程管理方法,该进程管理装置500可以是与图4所示的进程管理装置400相同的装置。参阅图5所示,进程管理装置500包括:
存储器501,用于存储服务器允许启动的进程的数量的最大值;
处理器502,用于确定服务器中当前已启动的至少一个进程中存在阻塞进程;当当前已启动的至少一个进程全部阻塞时,判断当前已启动的至少一个进程的数量值是否等于所处存储器501存储的服务器允许启动的进程的数量的最大值;若是,则终止阻塞进程中的部分阻塞进程,并启动至少一个进程;若否,则启动至少一个进程。
可选地,处理器502还用于:当当前已启动的至少一个进程未全部阻塞时,终止阻塞进程中的至少一个阻塞进程。
可选地,处理器502还用于:在终止阻塞进程中的至少一个阻塞进程之后,启动至少一个进程。
可选地,存储器501还用于:存储预设的阈值;处理器502在终止阻塞进程中的部分阻塞进程时,具体用于:在阻塞进程中,将用于处理阻塞进程的中央处理器的占用率超过预设阈值的阻塞进程作为部分阻塞进程,并终止该部分阻塞进程。
图5所示的进程管理装置500可视为前述进程管理装置400的一种可选的实现方式,对图5所示的进程管理装置500未详尽描述的实施方式及相应操作的技术效果,可参见图4中对进程管理装置400的相关描述。
本发明实施例还提供一种Oracle服务器,该Oracle服务器包括图5所示的进程管理装置500。
本发明实施例提供的技术方案中,首先确定服务器中当前已启动的至少一个进程中存在阻塞进程;当前已启动的至少一个进程全部阻塞时,判断当前已启动的至少一个进程的数量值是否等于服务器允许启动的进程的数量的最大值;若是,则终止阻塞进程中的部分阻塞进程,并启动至少一个进程;若否,则启动至少一个进程。本发明实施例中,无论当前已启动的阻塞进程的数量值是否等于服务器允许启动的进程的数量的最大值,均启动了新进程,因而可以解决由于服务器中进程全部阻塞导致的服务器无法正常为客户端提供服务的问题,使服务器能够正常为客户端提供服务;即,通过监控处理服务器中进程,实现快速且不中断地为客户端提供服务,提升用户体验。
此外,当当前已启动的阻塞进程的数量值等于服务器允许启动的进程的数量的最大值时,终止了阻塞进程中的部分阻塞进程,因而可以在不中断为客户端提供服务的情况下,达到降低CPU占用率的效果,提高服务器性能。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种进程管理方法,其特征在于,应用于共享服务器模式下的Oracle服务器,所述方法包括:
确定所述服务器中当前已启动的至少一个进程中存在阻塞进程;
当所述当前已启动的至少一个进程全部阻塞时,判断所述当前已启动的至少一个进程的数量值是否等于所述服务器允许启动的进程的数量的最大值;若是,则终止所述阻塞进程中的部分阻塞进程,并启动至少一个进程;若否,则启动至少一个进程。
2.如权利要求1所述的方法,其特征在于,还包括:
当所述当前已启动的至少一个进程未全部阻塞时,终止所述阻塞进程中的至少一个阻塞进程。
3.如权利要求2所述的方法,其特征在于,终止所述阻塞进程中的至少一个阻塞进程之后,还包括:
启动至少一个进程。
4.如权利要求1~3任一项所述的方法,其特征在于,终止所述阻塞进程中的部分阻塞进程,具体包括:
在所述阻塞进程中,将用于处理所述阻塞进程的中央处理器的占用率超过预设阈值的阻塞进程作为所述部分阻塞进程,并终止所述部分阻塞进程。
5.一种进程管理装置,其特征在于,应用于共享服务器模式下的Oracle服务器,所述装置包括:
确定模块,用于确定所述服务器中当前已启动的至少一个进程中存在阻塞进程;
处理模块,用于当所述当前已启动的至少一个进程全部阻塞时,判断所述当前已启动的至少一个进程的数量值是否等于所述服务器允许启动的进程的数量的最大值;若是,则终止所述确定模块确定的所述阻塞进程中的部分阻塞进程,并启动至少一个进程;若否,则启动至少一个进程。
6.如权利要求5所述的装置,其特征在于,所述处理模块还用于:
当所述当前已启动的至少一个进程未全部阻塞时,终止所述阻塞进程中的至少一个阻塞进程。
7.如权利要求6所述的装置,其特征在于,所述处理模块还用于:
在终止所述阻塞进程中的至少一个阻塞进程之后,启动至少一个进程。
8.如权利要求5~7任一项所述的装置,其特征在于,所述处理模块在终止所述确定模块确定的所述阻塞进程中的部分阻塞进程时,具体用于:
在所述确定模块确定的所述阻塞进程中,将用于处理所述阻塞进程的中央处理器的占用率超过预设阈值的阻塞进程作为所述部分阻塞进程,并终止所述部分阻塞进程。
9.一种进程管理装置,其特征在于,应用于共享服务器模式下的Oracle服务器,所述装置包括:
存储器,用于存储所述服务器允许启动的进程的数量的最大值;
处理器,用于确定所述服务器中当前已启动的至少一个进程中存在阻塞进程;当所述当前已启动的至少一个进程全部阻塞时,判断所述当前已启动的至少一个进程的数量值是否等于所处存储器存储的所述服务器允许启动的进程的数量的最大值;若是,则终止所述阻塞进程中的部分阻塞进程,并启动至少一个进程;若否,则启动至少一个进程。
10.一种Oracle服务器,其特征在于,所述Oracle服务器包括如权利要求9所述的进程管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610491428.XA CN107544840A (zh) | 2016-06-28 | 2016-06-28 | 一种进程管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610491428.XA CN107544840A (zh) | 2016-06-28 | 2016-06-28 | 一种进程管理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107544840A true CN107544840A (zh) | 2018-01-05 |
Family
ID=60963120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610491428.XA Pending CN107544840A (zh) | 2016-06-28 | 2016-06-28 | 一种进程管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107544840A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032812A (zh) * | 2018-06-29 | 2018-12-18 | Oppo(重庆)智能科技有限公司 | 一种移动终端及其进程间通信的限制方法、存储介质 |
CN109032814A (zh) * | 2018-06-29 | 2018-12-18 | Oppo(重庆)智能科技有限公司 | 一种移动终端及其进程间通信的监控方法、存储介质 |
CN110209548A (zh) * | 2018-04-19 | 2019-09-06 | 深圳市腾讯计算机系统有限公司 | 服务控制方法、系统、电子设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030188217A1 (en) * | 2002-03-27 | 2003-10-02 | International Business Machines Corporation | Method and apparatus for controlling the termination of processes in response to a shutdown command |
CN1825287A (zh) * | 2006-03-31 | 2006-08-30 | 浙江大学 | 嵌入式sram操作系统进程实现和进程状态转换的方法 |
CN1979430A (zh) * | 2005-12-08 | 2007-06-13 | 国际商业机器公司 | 安全中断服务器中阻塞工作的方法和系统 |
CN101442437A (zh) * | 2008-10-31 | 2009-05-27 | 金蝶软件(中国)有限公司 | 一种实现高可用性的方法、系统及设备 |
CN105159770A (zh) * | 2015-09-21 | 2015-12-16 | 天脉聚源(北京)传媒科技有限公司 | 一种进程的管理方法及装置 |
CN105302637A (zh) * | 2015-10-13 | 2016-02-03 | 广东欧珀移动通信有限公司 | 系统进程运行异常引起卡顿的恢复方法、装置及移动终端 |
-
2016
- 2016-06-28 CN CN201610491428.XA patent/CN107544840A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030188217A1 (en) * | 2002-03-27 | 2003-10-02 | International Business Machines Corporation | Method and apparatus for controlling the termination of processes in response to a shutdown command |
CN1979430A (zh) * | 2005-12-08 | 2007-06-13 | 国际商业机器公司 | 安全中断服务器中阻塞工作的方法和系统 |
CN1825287A (zh) * | 2006-03-31 | 2006-08-30 | 浙江大学 | 嵌入式sram操作系统进程实现和进程状态转换的方法 |
CN101442437A (zh) * | 2008-10-31 | 2009-05-27 | 金蝶软件(中国)有限公司 | 一种实现高可用性的方法、系统及设备 |
CN105159770A (zh) * | 2015-09-21 | 2015-12-16 | 天脉聚源(北京)传媒科技有限公司 | 一种进程的管理方法及装置 |
CN105302637A (zh) * | 2015-10-13 | 2016-02-03 | 广东欧珀移动通信有限公司 | 系统进程运行异常引起卡顿的恢复方法、装置及移动终端 |
Non-Patent Citations (1)
Title |
---|
李爱武: "《Oracle数据库系统原理(第2版)》", 1 August 2015, 北京邮电大学出版社 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209548A (zh) * | 2018-04-19 | 2019-09-06 | 深圳市腾讯计算机系统有限公司 | 服务控制方法、系统、电子设备及计算机可读存储介质 |
CN109032812A (zh) * | 2018-06-29 | 2018-12-18 | Oppo(重庆)智能科技有限公司 | 一种移动终端及其进程间通信的限制方法、存储介质 |
CN109032814A (zh) * | 2018-06-29 | 2018-12-18 | Oppo(重庆)智能科技有限公司 | 一种移动终端及其进程间通信的监控方法、存储介质 |
CN109032814B (zh) * | 2018-06-29 | 2020-10-02 | Oppo(重庆)智能科技有限公司 | 一种移动终端及其进程间通信的监控方法、存储介质 |
CN109032812B (zh) * | 2018-06-29 | 2020-10-02 | Oppo(重庆)智能科技有限公司 | 一种移动终端及其进程间通信的限制方法、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210200587A1 (en) | Resource scheduling method and apparatus | |
EP3534255A1 (en) | I/o request scheduling method and device | |
CN101694631B (zh) | 实时作业调度系统及方法 | |
CN110308980A (zh) | 数据的批量处理方法、装置、设备及存储介质 | |
CN104102548B (zh) | 任务资源调度处理方法和系统 | |
CN112269641B (zh) | 一种调度方法、装置、电子设备及存储介质 | |
CN109710416B (zh) | 资源调度方法及装置 | |
CN106506670A (zh) | 一种云平台虚拟资源高速调度方法与系统 | |
US20100042723A1 (en) | Method and system for managing load in a network | |
CN106528288A (zh) | 一种资源管理方法、装置和系统 | |
CN107544840A (zh) | 一种进程管理方法及装置 | |
CN105022668B (zh) | 一种作业调度方法及系统 | |
CN112269999A (zh) | 一种漏洞扫描任务调度的方法、装置、设备和介质 | |
CN109710414A (zh) | 一种作业调度方法、装置、设备及存储介质 | |
CN116560860B (zh) | 一种基于机器学习的资源优先级的实时优化调整方法 | |
CN113608834A (zh) | 一种基于超融合的资源调度方法、装置、设备及可读介质 | |
CN110764887A (zh) | 任务重调度方法、系统及相关设备、装置 | |
CN115543577A (zh) | 基于协变量的Kubernetes资源调度优化方法、存储介质及设备 | |
CN106775975B (zh) | 进程调度方法及装置 | |
CN109656714B (zh) | 一种虚拟化显卡的gpu资源调度方法 | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN112231053B (zh) | 一种负载均衡服务分配方法及装置 | |
CN101308469B (zh) | 一种软中断负载均衡的实现方法及设备 | |
CN107402812A (zh) | 集群资源调度方法、装置、设备及存储介质 | |
CN111708618A (zh) | 一种基于Java多线程的处理方法和装置 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180105 |
|
WD01 | Invention patent application deemed withdrawn after publication |