如果内存不受限制/无限制,cgroup 的 limit_in_bytes 的值是多少?

Chr*_*mer 8 memory cgroups docker

打印无限制的 docker 容器的值我得到值 9223372036854771712,即 0x7FFFFFFFFFFFF000(这与 XUbuntu 主机的值相同)。我找不到一个参考,表明这是指示无限内存资源的 Docker 或 Linux 默认值。

这个价值从何而来?容器虚拟化或 Linux 发行版/位元之间有什么不同吗?

Ste*_*itt 11

该值来自内存管理层中的cgroup设置;默认情况下,它设置为PAGE_COUNTER_MAX,这是LONG_MAX / PAGE_SIZE在 64 位平台上,并在读取时再次乘以PAGE_SIZE

这证实了ilkkachu解释:该值是最大的 64 位有符号整数,四舍五入到最近的页面(通过删除最后一位)。


ilk*_*chu 9

这是最高的正符号 64 位整数 (2 63 -1),向下舍入为 4096 (2 12 ) 的倍数,这是 x86 系统上最常见的页面大小。在避免有符号和无符号之间可能出现的混淆的同时,似乎很难获得更高的值,因此它似乎至少是无穷大的合理近似值。

也就是说,我不确定,这只是一个猜测。