linux – 是否有可能对进程的内存消耗施加某种软限制?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 是否有可能对进程的内存消耗施加某种软限制?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1517字,纯文字阅读大概需要3分钟。
内容图文
![linux – 是否有可能对进程的内存消耗施加某种软限制?](/upload/InfoBanner/zyjiaocheng/959/3413153a8a954c668c7c6495bdeda9b3.jpg)
我认为这不是一个不常见的问题:一个进程分配了大量内存(因为你因为内存泄漏错误,因为你试图处理一个不可行的大输入文件,或者其他什么). RAM填满了,在某些时候Linux必须切换到交换.好吧,有时这只是最后的手段:如果我的计算成本很高,我不想丢失数据,如果最后我用完了RAM.
然而,更常见的是(根据我的经验),内存消耗是无限的,由流氓,也许是错误的过程.也就是说,我不仅仅是将一些不那么迫切需要的数据转移到交换中,但操作系统被迫全面交换大量数据.不幸的是,这不仅会严重打破违规过程,而且会使整个系统几乎陷入停滞状态(在使用SSD的机器上不再那么糟糕,但OTOH让我担心是否可能会写入千兆字节和千兆字节的垃圾数据长期伤害闪存单元).直到我注意到问题并手动终止进程(一旦实际需要几分钟,直到我自己登录到虚拟终端!),我的运行会话的一半是交换,我需要等待一段时间,直到系统再次平稳运行.
这个问题有一个简单的解决方案:强制执行硬内存限制.但是在整个系统范围内执行此操作有时会杀死我仍然需要的进程,如果我必须在开始违规进程之前手动删除…好吧,我会经常忘记,直到为时已晚.
可能的解决方案我会更开心:
>如果任何进程超过某个内存使用量,则会人为地限制它,以便系统的其余部分保持响应.
>如果任何进程超过某个内存使用量,则为SIGSTOPped,因此我有时间弄清楚接下来要做什么.
>如果进程接近RAM限制,我会在大量交换开始之前收到警告.
有没有办法得到这样的行为,或类似的?
解决方法:
niceload –noswap yourprg正是针对这种情况而制定的:它着眼于交换活动:
>如果交换:让流程运行
>如果换入:让流程运行
>如果交换进入:挂起进程直到交换停止并在交换停止时恢复进程
它不会在交换开始之前暂停进程,但是在执行之前让交换运行1秒.
niceload –mem 1G yourprg的工作方式类似:如果免费小于1GB,则youprg被暂停.当超过1GB是免费的时候你的prpr恢复.
内容总结
以上是互联网集市为您收集整理的linux – 是否有可能对进程的内存消耗施加某种软限制?全部内容,希望文章能够帮你解决linux – 是否有可能对进程的内存消耗施加某种软限制?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。