居民集大小(RSS)限制无效

发布于 2021-01-29 17:23:31

在运行具有2.6.32-22-通用内核的Ubuntu
10.04的计算机上,会发生以下问题:设置进程的驻留集大小(RSS)的限制似乎没有任何效果。我目前使用以下代码在Python中设置了限制:

import resource
# (100, 100) is the (soft, hard) limit. ~100kb.
resource.setrlimit(resource.RLIMIT_RSS, (100, 100))
memory_sink = ['a']*10000000   # this should fail

列表memory_sink每次都会成功。当我用top检查RSS使用情况时,我可以轻松地获得使用1gb
RAM的过程,这意味着限制不起作用。RSS限制不适用于该内核或发行版吗?如果有帮助,resource.RLIMIT_NPROC(用户进程限制)可以工作。

关注者
0
被浏览
51
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    形成getrlimit手册页:

    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.
    

    似乎Linux内核2.6不支持此功能。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看