Python的resource.RLIMIT_VMEM(或resource.RLIMIT_AS)返回的两个数字是什么意思?

2024-04-18 22:43:03 发布

您现在位置:Python中文网/ 问答频道 /正文

Python的resource模块允许获取和设置各种系统资源使用信息。具体而言,进程使用的内存量可通过resource.RLIMIT_VMEM(或者,在某些系统上,根据this StackOverflow答案,resource.RLIMIT_AS)获得

当我运行以下Python代码(使用Python 3.7)打印内存使用情况时,我看到一个具有两个值的元组:

import resource
print(resource.getrlimit(resource.RLIMIT_AS))

在Ubuntu18.04上,它打印(-1, -1)(我的意思是,两个值都是无限的)

在MacOSX10.4上,它打印(9223372036854775807, 9223372036854775807)(大约相当于一个EB字节)

关于此输出,我有两个问题:

  1. 第一个数字和第二个数字有什么区别

  2. 报告的值如9223372036854775807应该如何解释?它们是字节数吗(非常大的值是否只是一种设置内存限制的方法,而内存限制太大,永远无法达到?


Tags: 模块内存答案代码信息进程系统as
1条回答
网友
1楼 · 发布于 2024-04-18 22:43:03

这两个值对应于getrlimit系统调用中的rlim_cur(“软限制”)和rlim_max(“硬限制”)。这记录在library documentation for the resource module

-1对应于resource.RLIM_INFINITY常量,这意味着没有设置限制

RLIMIT_AS的单位定义为字节,记录为here

resource.RLIMIT_AS The maximum area (in bytes) of address space which may be taken by the process.

您可以在getrlimit(2)手册页上找到关于这些值含义的更多Linux特定信息

相关问题 更多 >