【问题标题】:Soft, hard limit in python's Resourcepython资源中的软硬限制
【发布时间】:2020-02-26 01:29:26
【问题描述】:

python的resource中的softhard限制有什么实际区别?

例如,做和做有什么区别:

import resource
soft_limit,hard_limit=resource.getrlimit(resource.RLIMIT_DATA)

# set soft limit
resource.setrlimit(resource.RLIMIT_DATA, (1024,hard_limit))

# set soft and hard limit
resource.setrlimit(resource.RLIMIT_DATA, (1024,1024))

最后,是的,我已经阅读了有关软限制和硬限制的文档,但实际上仍然不明白有什么区别:

可以使用下面描述的 setrlimit() 函数来限制资源使用。每个资源都由一对限制控制:软限制和硬限制。软限制是当前限制,并且可以随着时间的推移被进程降低或提高。软限制永远不能超过硬限制。硬限制可以降低到任何大于软限制的值,但不能提高。 (只有具有超级用户有效 UID 的进程才能提高硬限制。)

【问题讨论】:

    标签: python resources python-internals


    【解决方案1】:

    CPython 的resource 显然使用来自sys/resourcesetrlimit。浏览GNU's libc manual,它对当前(软)和硬限制有这样的说法:

    每个进程有两个与资源相关的限制:

    电流限制

    当前限制是系统不允许使用超过的值。也称为“软限制”,因为被限制的进程一般可以随意提高电流限制。

    最大限制

    最大限制是允许进程设置其当前限制的最大值。它也被称为“硬限制”,因为进程无法绕过它。进程可以降低自己的最大限制,但只有超级用户可以增加最大限制。

    所以 tl;dr:软是因为一个进程可以增加其限制,硬是因为它不能,差异在您添加的文档的最后一个括号中的句子中说明:

    (只有具有超级用户有效 UID 的进程才能提高硬限制。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-23
      • 2022-11-17
      • 2017-11-29
      • 2015-06-09
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多