Python resource module RLIMIT_RSS not work

在使用resource设置当前进程的MEM_LIMIT的时候, 发现在我的CentOS6x和7x上都不work了, 测试代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import time
import resource

resource.setrlimit(resource.RLIMIT_RSS, (1024, 1024))
s = ' ' * (10 * 1024 * 1024)
time.sleep(60)

查了一下资料, 总算在下面的链接中找到了答案.就是 RLIMIT_RSS 只在 Linux 2.4.x, x < 30的系统上工作. 具体说明如下:

https://linux.die.net/man/2/prlimit

RLIMIT_RSS
Specifies the limit (in pages) of the process's resident set (the number of virtual pages resident in RAM). This limit only has effect in Linux 2.4.x, x < 30, and there only affects calls to madvise(2) specifying MADV_WILLNEED.

最后没有办法,只能自己周期性的计算内存使用情况,来执行相应的操作了。

另外,resource模块只能设置当前进程的rlimit,如果要设置任意进程的rlimit,可以使用psutil模块来实现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Python处理Windows进程 psutil(Python system and process utilit...
    Zhaifg阅读 22,901评论 0 13
  • 为了执行权限检查,传统的 UNIX 实现区分两种类型的进程:特权进程(其有效用户 ID 为0,称为超级用户或 ro...
    hanpfei阅读 4,229评论 0 1
  • 成年人的世界里是没有容易两个字的,成年人的崩溃会考虑到很多,家庭,还有后果,我们不能崩溃,只能让自己学会自愈 “现...
    Lisa有毒阅读 1,214评论 0 1
  • 华盛顿合作规律: 一个人敷衍了事;两个人相互推诿; 三人则永无成事之日。 人就像那些方向不同的力, 相互推动时, ...
    zhoujia阅读 510评论 1 0
  • 突然发现大多数时候看什么也不能静下心来,就像来简书,有时候看别人写的文章,也都是浅尝辄止,沉不下心来,但不...
    蓝调烟霞阅读 247评论 4 1

友情链接更多精彩内容