gpt4 book ai didi

未强制执行 systemd MemoryLimit

转载 作者:行者123 更新时间:2023-12-02 01:16:07 25 4
gpt4 key购买 nike

我正在运行 systemd 版本 219。根@EVOvPTX1_RE0-re0:/var/log# systemctl --version系统 219+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN

我有一个服务,我们称它为 foo.service,它具有以下内容。

[服务]内存限制=1G

我故意添加代码分配1M内存4096次导致接收到某个事件时分配 4G 内存。这个想法是,之后该进程消耗了 1G 的地址空间,内存分配将开始失败。然而,情况似乎并非如此。我可以分配4G内存没有任何问题。这告诉我在不强制执行服务文件。

谁能告诉我我错过了什么?

我查看了 proc 文件系统 - 名为 limits 的文件。这表明Max address space is Unlimited,这也证实了内存限制没有得到执行。

最佳答案

这个区别就是你分配了内存,但你并没有真正使用过它。在 top 的输出中,这是“VIRT”内存列(已分配)和“RES”列(实际使用)之间的差异。

尝试修改您的实验,将值分配给大型数组的元素,而不是仅仅分配内存,然后看看您是否以这种方式达到内存限制。

引用:Resident and Virtual memory on Linux: A short example

关于未强制执行 systemd MemoryLimit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42541928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com