abu*_*kaj 3 linux memory resources time ulimit
从man time:
M Maximum resident set size of the process during its lifetime, in Kilobytes.
Run Code Online (Sandbox Code Playgroud)
从ulimit -a:
max memory size (kbytes, -m) unlimited
Run Code Online (Sandbox Code Playgroud)
但“千字节”可能意味着 1000 或 1024 字节。我猜这是一轮 1024,但我想确定一下。权威参考将不胜感激。
它是千字节 (1024),这些是getrusage()/ setrlimit()API 的原始接口。这些文档不准确(或者如您所说的老派)。
另请注意,资源限制/核算及其单位因系统而异,您会发现 shell 在某些系统上出错的情况并不少见(不按记录的方式运行)。您会发现某些 shell 进行了一些额外的缩放,以适应这种情况或与 BSD csh 中的原始实现兼容,但无论如何,支持的 KMGTPE 后缀始终基于 1024,而不是基于 1000。
它提醒我,我有一个提议的 zsh 补丁,涵盖了这个问题以及我需要完成的更多内容。
您将看到其中的代码清楚地说明了每个资源的单位。
typedef struct resinfo_T {
int res; /* RLIMIT_XXX */
char* name; /* used by limit builtin */
enum zlimtype type;
int unit; /* 1, 512, or 1024 */
char opt; /* option character */
char* descr; /* used by ulimit builtin */
} resinfo_T;
[...]
{RLIMIT_RSS, "resident", ZLIMTYPE_MEMORY, 1024,
'm', "resident set size (kbytes)"},
Run Code Online (Sandbox Code Playgroud)
对于 RSS 限制。
还要注意zsh关键字的单位在除 Darwin/macos 之外的所有系统上都是错误的%Mtime。
独立的 GNUtime实用程序(许多 shell 有自己的time关键字)了解 Darwin/macOS 和其他系统之间的不同单位。
| 归档时间: |
|
| 查看次数: |
406 次 |
| 最近记录: |