CN102799471B - 操作系统的进程回收方法及系统 - Google Patents
操作系统的进程回收方法及系统 Download PDFInfo
- Publication number
- CN102799471B CN102799471B CN201210167665.2A CN201210167665A CN102799471B CN 102799471 B CN102799471 B CN 102799471B CN 201210167665 A CN201210167665 A CN 201210167665A CN 102799471 B CN102799471 B CN 102799471B
- Authority
- CN
- China
- Prior art keywords
- threshold value
- operating system
- free memory
- memory
- numbers
- 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.)
- Active
Links
Abstract
本发明公开了一种操作系统的进程回收方法,包括以下步骤:步骤S1、监测该操作系统的空闲内存;步骤S2、将该空闲内存与一阈值比较,并判断该空闲内存是否低于该阈值,若是,进入步骤S3;若否,返回步骤S1;步骤S3、回收预设的进程。本发明还公开了一种操作系统的进程回收系统。本发明通过设置系统的cache回收,增大系统的空闲内存,同时在操作系统开始自动杀死进程前通过预先设置的方式,动态的选择不需要的进程进行回收,达到最大限度的满足系统服务的要求,兼顾了操作系统的正常运行和内存使用之间的平衡,提高系统的稳定性,增强服务的稳定性。
Description
技术领域
本发明涉及一种操作系统的进程回收方法及系统,特别是涉及一种嵌入式Linux(Linux是一种自由和开放源码的类Unix操作系统(UNIX操作系统,是美国AT&T公司于1971年在PDP-11上运行的操作系统。具有多用户、多任务的特点,支持多种处理器架构,最早由肯·汤普逊(Kenneth LaneThompson)、丹尼斯·里奇(Dennis MacAlistair Ritchie)和Douglas McIlroy于1969年在AT&T的贝尔实验室开发))操作系统的进程回收方法及系统。
背景技术
在嵌入式设备中,出于成本的考虑,系统内存非常有限,当系统在较大的负载下运行的时候,容易出现内存不足的情况。目前,在嵌入式linux操作系统中,系统会在内存降低到系统设定的阈值的时候,根据进程的活跃度开始回收进程。虽然这从一定程度上缓解了内存不足的情况,然后现有的根据进程的活跃度回收进程的作法有时会造成操作系统应用的进程被回收掉,从而导致设备无法正常的运行的缺陷。
由此,期望能找到一种平衡内存使用和操作系统运行需要的优化方法。
发明内容
本发明要解决的技术问题是为了克服现有技术中在回收进程时回收了操作系统应用的进程从而导致设备无法正常运行的缺陷,提供一种回收进程时兼顾操作系统运行需要的操作系统的进程回收方法及系统。
本发明是通过下述技术方案来解决上述技术问题的:
一种操作系统的进程回收方法,其特点在于,其包括以下步骤:
步骤S1、监测该操作系统的空闲内存;
步骤S2、将该空闲内存与一阈值比较,并判断该空闲内存是否低于该阈值,若是,进入步骤S3;若否,返回步骤S1;
步骤S3、回收预设的进程。例如采用系统层释放内存的接口,对系统缓存内存进行释放,增大系统的空闲内存大小。
优选地,步骤S2包括以下步骤:
步骤S21、将该空闲内存与一阈值-进程列表中的每个阈值比较,若该空闲内存大于阈值Am,则返回步骤S1;若阈值An-1<该空闲内存≤阈值An,1<n≤m,则进入步骤S22;若该空闲内存≤阈值A1,则进入步骤S23;
步骤S22、获得与阈值An相应的进程,并进入步骤S3以回收与阈值An相应的进程;
步骤S23、获得与阈值A1相应的进程,并进入步骤S3以回收与阈值A1相应的进程,
其中,该阈值-进程列表中包括以An表示的阈值数列,该阈值数列中每个数列的项对应一个阈值,共有m个阈值,且该阈值-进程列表记录每个阈值与进程的对应关系,m、n均为自然数,且该阈值数列为递增数列。
优选地,步骤S1中以一预设时间间隔监测该空闲内存。
优选地,该操作系统为LINUX操作系统。
本发明还提供一种操作系统的进程回收系统,其特点在于,其包括:
一内存监测装置,用于监测该操作系统的空闲内存;
一判断装置,用于将该空闲内存与一阈值比较以判断该空闲内存是否低于该阈值,并在该空闲内存低于该阈值时启用一进程回收装置;
该进程回收装置用于回收预设的进程。
优选地,该操作系统的进程回收系统还包括一存储装置,用于存储一阈值-进程列表,该阈值-进程列表中包括以An表示的阈值数列,该阈值数列中每个数列的项对应一个阈值,共有m个阈值,且该阈值-进程列表记录每个阈值与进程的对应关系,m、n均为自然数,且该阈值数列为递增数列,
该判断装置还用于将该空闲内存与一阈值-进程列表中的每个阈值比较,若阈值An-1<该空闲内存≤阈值An,1<n≤m,则获得与阈值An相应的进程以供该进程回收装置回收与阈值An相应的进程;若该空闲内存≤阈值A1,则获得与阈值A1相应的进程以供该进程回收装置回收与阈值A1相应的进程。
优选地,该内存监测装置用于以一预设时间间隔监测该空闲内存。
优选地,该操作系统为LINUX操作系统。
本发明的积极进步效果在于:本发明通过设置系统的cache(高速缓冲存储器)回收,增大系统的空闲内存,同时在操作系统开始自动杀死进程前通过预先设置的方式,动态的选择不需要的进程进行回收,达到最大限度的满足系统服务的要求,兼顾了操作系统的正常运行和内存使用之间的平衡,提高系统的稳定性,增强服务的稳定性。同时在启动的后台监控进程中增加其他的监控内容,可以监控进程或者其他的指标,自动和快捷的完成系统的守护任务。在产品cost-down(降低成本)的过程中,发挥很大的作用,节省了设备的成本同时也可以提高系统的稳定性。
附图说明
图1为本发明一实施例的操作系统的进程回收方法的流程图。
图2为本发明一实施例的操作系统的进程回收系统的结构框图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
参考图1,介绍本发明所述的操作系统的进程回收方法,包括以下步骤:
步骤S1、监测该操作系统的空闲内存;
步骤S2、将该空闲内存与一阈值比较,并判断该空闲内存是否低于该阈值,若是,进入步骤S3;若否,返回步骤S1;
步骤S3、回收预设的进程。
为了适应各个不同使用阶段的需要,还可以根据实际使用情况将阈值设置为多个不同的值,每个不同的阈值对应了需要回收的不同进程,具体来说,步骤S2包括以下步骤:
步骤S21、将该空闲内存与一阈值-进程列表中的每个阈值比较,若该空闲内存大于阈值Am,则返回步骤S1;若阈值An-1<该空闲内存≤阈值An,1<n≤m,则进入步骤S22;若该空闲内存≤阈值A1,则进入步骤S23;
步骤S22、获得与阈值An相应的进程,并进入步骤S3以回收与阈值An相应的进程;
步骤S23、获得与阈值A1相应的进程,并进入步骤S3以回收与阈值A1相应的进程,
其中,该阈值-进程列表中包括以An表示的阈值数列,该阈值数列中每个数列的项对应一个阈值,共有m个阈值,且该阈值-进程列表记录每个阈值与进程的对应关系,m、n均为自然数,且该阈值数列为递增数列。
其中,步骤S1中以一预设时间间隔监测该空闲内存。
更具体地,该操作系统为LINUX操作系统。其中,进程回收采用linux的系统接口实现(例如通过kill接口往选定进程发送信号量,使得进程自动退出,释放内存)。
参考图2,介绍本发明所述的操作系统的进程回收系统,其包括:
一内存监测装置1,用于监测该操作系统的空闲内存;
一判断装置2,用于将该空闲内存与一阈值比较以判断该空闲内存是否低于该阈值,并在该空闲内存低于该阈值时启用一进程回收装置3;
该进程回收装置3用于回收预设的进程。
其中,该操作系统的进程回收系统还包括一存储装置4,用于存储一阈值-进程列表,该阈值-进程列表中包括以An表示的阈值数列,该阈值数列中每个数列的项对应一个阈值,共有m个阈值,且该阈值-进程列表记录每个阈值与进程的对应关系,m、n均为自然数,且该阈值数列为递增数列,
该判断装置2还用于将该空闲内存与一阈值-进程列表中的每个阈值比较,若阈值An-1<该空闲内存≤阈值An,1<n≤m,则获得与阈值An相应的进程以供该进程回收装置3回收与阈值An相应的进程;若该空闲内存≤阈值A1,则获得与阈值A1相应的进程以供该进程回收装置3回收与阈值A1相应的进程。
具体来说,该内存监测装置用于以一预设时间间隔监测该空闲内存。
更具体地,该操作系统为LINUX操作系统。
为了使本领域技术人员对本发明的技术方案有更直观的感受,下面结合用户角度,进一步说明本发明的技术方案。
首先,启动监控进程,使进程作为后台运行。
接着定期的通过/proc/meminfo查看系统的空闲内存,根据需要可以设置为1秒钟查看一次或者3秒钟查看一次空闲内存。
当操作系统的空闲内存低于设定的阈值1的时候,比如事先设置700K开始进程回收,我们可以先将该阈值1设置为2M,通过echo1>/proc/sys/vm/drop_caches的方式先释放一部分系统内存。
当空闲内存低于设定的阈值2的时候,例如,将该阈值2设置为1.5M,此时系统内存比之前还要紧张,通过echo 2>/proc/sys/vm/drop_caches的方式释放更多的系统内存
又例如当系统内存低于设定的阈值3的时候,将阈值3设置为1M,通过echo 3>/proc/sys/vm/drop_caches的方式,进行更多内存的释放。
最后,当系统内存低于我们设定的阈值4的时候,例如阈值4设置为800K(当系统低于700K的时候系统开始通过回收进程的方式释放更多的内存),通过echo 3>/proc/sys/vm/drop_cahces以及杀掉预先规定的内存进行进程的回收来释放内存。
在嵌入式Linux环境中,当空闲内存降低到系统设置的最低值的时候,操作系统开始回收进程来进行空闲内存的释放,防止因为内存无法分配引起操作系统的崩溃。但是操作系统中应用服务同时也被回收,无法提供正常的系统服务。本发明的通过设置系统的cache回收,增大系统的空闲内存,同时在系统开始自动杀死进程前通过我们设置的方式,动态的选择我们不需要的进程进行回收,达到最大限度的满足我们系统服务的要求,提高系统的稳定性,增强服务的稳定性。同时在我们启动的后台监控进程中增加其他的监控内容,可以监控进程或者其他的指标,自动和快捷的完成系统的守护任务。在产品cost-down的过程中,发挥很大的作用,节省了设备的成本同时也可以提高系统的稳定性。并且兼顾了操作系统的正常运行和内存的使用。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (6)
1.一种操作系统的进程回收方法,其包括以下步骤:
步骤S1、监测该操作系统的空闲内存;
步骤S2、将该空闲内存与一阈值比较,并判断该空闲内存是否低于该阈值,若是,进入步骤S3;若否,返回步骤S1;
步骤S3、回收预设的进程;
其特征在于,步骤S2包括以下步骤:
步骤S21、将该空闲内存与一阈值-进程列表中的每个阈值比较,若该空闲内存大于阈值Am,则返回步骤S1;若阈值An-1<该空闲内存≤阈值An,1<n≤m,则进入步骤S22;若该空闲内存≤阈值A1,则进入步骤S23;
步骤S22、获得与阈值An相应的进程,并进入步骤S3以回收与阈值An相应的进程;
步骤S23、获得与阈值A1相应的进程,并进入步骤S3以回收与阈值A1相应的进程,
其中,该阈值-进程列表中包括以An表示的阈值数列,该阈值数列中每个数列的项对应一个阈值,共有m个阈值,且该阈值-进程列表记录每个阈值与进程的对应关系,m、n均为自然数,且该阈值数列为递增数列。
2.如权利要求1所述的操作系统的进程回收方法,其特征在于,步骤S1中以一预设时间间隔监测该空闲内存。
3.如权利要求1-2中任意一项所述的操作系统的进程回收方法,其特征在于,该操作系统为LINUX操作系统。
4.一种操作系统的进程回收系统,其包括:
一内存监测装置,用于监测该操作系统的空闲内存;
一判断装置,用于将该空闲内存与一阈值比较以判断该空闲内存是否低于该阈值,并在该空闲内存低于该阈值时启用一进程回收装置;
该进程回收装置用于回收预设的进程;
其特征在于,该操作系统的进程回收系统还包括:
一存储装置,用于存储一阈值-进程列表,该阈值-进程列表中包括以An表示的阈值数列,该阈值数列中每个数列的项对应一个阈值,共有m个阈值,且该阈值-进程列表记录每个阈值与进程的对应关系,m、n均为自然数,且该阈值数列为递增数列,
该判断装置还用于将该空闲内存与该阈值-进程列表中的每个阈值比较,若阈值An-1<该空闲内存≤阈值An,1<n≤m,则获得与阈值An相应的进程以供该进程回收装置回收与阈值An相应的进程;若该空闲内存≤阈值A1,则获得与阈值A1相应的进程以供该进程回收装置回收与阈值A1相应的进程。
5.如权利要求4所述的操作系统的进程回收系统,其特征在于,该内存监测装置用于以一预设时间间隔监测该空闲内存。
6.如权利要求4-5中任意一项所述的操作系统的进程回收系统,其特征在于,该操作系统为LINUX操作系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210167665.2A CN102799471B (zh) | 2012-05-25 | 2012-05-25 | 操作系统的进程回收方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210167665.2A CN102799471B (zh) | 2012-05-25 | 2012-05-25 | 操作系统的进程回收方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102799471A CN102799471A (zh) | 2012-11-28 |
CN102799471B true CN102799471B (zh) | 2014-11-05 |
Family
ID=47198586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210167665.2A Active CN102799471B (zh) | 2012-05-25 | 2012-05-25 | 操作系统的进程回收方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102799471B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103117923B (zh) * | 2013-01-18 | 2016-06-29 | 杭州华三通信技术有限公司 | 一种进程管理方法和设备 |
CN103106093A (zh) * | 2013-02-21 | 2013-05-15 | 北京奇虎科技有限公司 | 一种系统运行加速方法和装置 |
CN104111873B (zh) * | 2013-04-22 | 2019-02-26 | 深圳富泰宏精密工业有限公司 | 内存释放方法及系统 |
KR102083316B1 (ko) * | 2013-04-24 | 2020-04-14 | 삼성전자주식회사 | 사용자 디바이스의 메모리 관리 방법 및 장치 |
CN103544063B (zh) * | 2013-09-30 | 2017-02-08 | 三星电子(中国)研发中心 | 应用于安卓平台的进程清除方法和装置 |
CN106789383A (zh) * | 2015-11-20 | 2017-05-31 | 北京奇虎科技有限公司 | 路由器系统监测方法与装置 |
CN105701025B (zh) * | 2015-12-31 | 2019-07-23 | 华为技术有限公司 | 一种内存回收方法及装置 |
CN105808440A (zh) * | 2016-03-14 | 2016-07-27 | 腾讯科技(深圳)有限公司 | 应用程序的低内存测试方法、装置和系统 |
CN107291549B (zh) * | 2016-03-31 | 2020-11-24 | 阿里巴巴集团控股有限公司 | 一种管理应用程序的方法及装置 |
WO2018211628A1 (ja) * | 2017-05-17 | 2018-11-22 | 三菱電機株式会社 | メモリ管理システム、情報処理装置およびメモリの管理方法 |
CN108228344B (zh) * | 2017-08-22 | 2021-08-10 | 珠海市魅族科技有限公司 | 多进程内存处理方法及装置、计算机装置及可读存储介质 |
CN108427603A (zh) * | 2018-01-10 | 2018-08-21 | 链家网(北京)科技有限公司 | 一种任务分派方法方法及装置 |
CN109347894A (zh) * | 2018-08-10 | 2019-02-15 | 锐捷网络股份有限公司 | 管理FastCGI进程的方法、管理器、设备及介质 |
CN111752851B (zh) * | 2019-03-27 | 2023-08-18 | 厦门网宿有限公司 | 一种内存回收方法及装置 |
CN111177024B (zh) * | 2019-12-30 | 2022-09-06 | 青岛海尔科技有限公司 | 一种内存优化处理方法及装置 |
CN111880991B (zh) * | 2020-07-23 | 2022-09-13 | Oppo广东移动通信有限公司 | 内存优化方法、装置、电子设备及计算机可读存储介质 |
CN113626181B (zh) * | 2021-06-30 | 2023-07-25 | 苏州浪潮智能科技有限公司 | 一种内存清理方法、装置、设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1996258A (zh) * | 2006-12-28 | 2007-07-11 | 武汉虹旭信息技术有限责任公司 | 一种动态内存池的实现方法 |
CN102141934A (zh) * | 2011-02-28 | 2011-08-03 | 浪潮(北京)电子信息产业有限公司 | 一种胖节点上的进程控制方法及装置 |
-
2012
- 2012-05-25 CN CN201210167665.2A patent/CN102799471B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1996258A (zh) * | 2006-12-28 | 2007-07-11 | 武汉虹旭信息技术有限责任公司 | 一种动态内存池的实现方法 |
CN102141934A (zh) * | 2011-02-28 | 2011-08-03 | 浪潮(北京)电子信息产业有限公司 | 一种胖节点上的进程控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102799471A (zh) | 2012-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102799471B (zh) | 操作系统的进程回收方法及系统 | |
CN101908022B (zh) | 一种用于移动通讯设备终端的内存管理方法及其装置 | |
US7900011B2 (en) | Apparatus, system, and method for improving system performance in a large memory heap environment | |
CN101206692B (zh) | 检测进程的方法及设备 | |
CN101599046B (zh) | 一种内存检测方法及装置 | |
CN103024539B (zh) | 用于管理智能电视系统的方法及装置 | |
CN102999328A (zh) | 在循环图中管理对象生命期 | |
US9430355B2 (en) | System diagnostics with thread dump analysis | |
CN103150259A (zh) | 一种内存回收方法和装置 | |
JP2008521093A5 (zh) | ||
CN108664390B (zh) | 一种内存泄露检测方法及设备 | |
CN105159777A (zh) | 进程的内存回收方法及装置 | |
US9727406B2 (en) | Mitigating crashes of an application server executing a monitoring agent | |
CN111338796B (zh) | 应用内存优化方法、装置、终端设备及可读存储介质 | |
CN103559124A (zh) | 故障快速检测方法及装置 | |
CN107102929A (zh) | 故障的检测方法及装置 | |
CN101894049A (zh) | 一种自适应回收垃圾对象的系统及方法 | |
CN107861878A (zh) | Java应用程序性能问题定位的方法、装置和设备 | |
US8713538B2 (en) | Monitoring heap in real-time by a mobile agent to assess performance of virtual machine | |
CN106055404A (zh) | 一种清理后台应用程序的方法和装置 | |
CN103020086A (zh) | 一种图片查重的方法及装置 | |
CN103699435A (zh) | 负载均衡方法及装置 | |
CN107912063B (zh) | 一种内存回收方法及装置 | |
CN104536773A (zh) | 基于内存扫描的嵌入式软件动态内存回收方法 | |
CN102799835B (zh) | 插件防再生方法及相应的插件防再生系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right |
Effective date of registration: 20180313 Granted publication date: 20141105 |
|
PP01 | Preservation of patent right | ||
PD01 | Discharge of preservation of patent |
Date of cancellation: 20210313 Granted publication date: 20141105 |
|
PD01 | Discharge of preservation of patent | ||
PP01 | Preservation of patent right |
Effective date of registration: 20210313 Granted publication date: 20141105 |
|
PP01 | Preservation of patent right |