经过与mem_limit太低的码头集装箱崩溃后,如何检查在容器mem_limit该容器?如果mem_limit设置为低,我想在启动时打印出错消息并退出。检查码头集装箱内的mem_limit
0
A
回答
2
内存限制是通过cgroups强制执行的。因此,您需要使用cgget
来查找给定cgroup的内存限制。
为了测试这一点,你可以运行内存限制的容器:
docker run --memory 512m --rm -it ubuntu bash
运行此您的容器内:
apt-get update
apt-get install cgroup-bin
cgget -n --values-only --variable memory.limit_in_bytes/
# will report 536870912
多克1.13坐骑容器的cgroup中,以/sys/fs/cgroup
(这可能改变未来版本)。您可以检查使用限制:感谢
cat /sys/fs/cgroup/memory/memory.limit_in_bytes
1
容器为我工作,您的想法塞巴斯蒂安
#!/bin/sh
MEM_LIMIT=$(cat /proc/self/cgroup|\
awk -F: '{ print $2":"$3}'|\
grep ^memory:|\
awk -F: '{print "/sys/fs/cgroup/memory"$2"/memory.limit_in_bytes"}'
)
MEM=$(cat "$MEM_LIMIT")
if [[ $MEM < 419430400 ]]; then
echo "Memory limit was set too small. Minimum 400m."
exit 1
fi
相关问题
- 1. 在另一个码头集装箱内使用码头集装箱的数据
- 2. Chaining在码头集装箱内的tcp_keepalive_ *
- 3. 码头集装箱内的debootstrap
- 4. 码头集装箱内的提升帆
- 5. 码头集装箱内的rsync文件?
- 6. 我可以从集装箱码头内重新启动码头集装箱吗?
- 7. 不能在码头集装箱MariaDB内
- 8. 从码头集装箱内打印
- 9. 暴露码头集装箱码头
- 10. 标记码头集装箱?
- 11. Python在码头集装箱
- 12. ERR_CONNECTION_REFUSED由码头集装箱
- 13. 连接码头集装箱
- 14. 监控码头集装箱
- 15. XDummy在码头集装箱
- 16. 码头集装箱UUID
- 17. systemd在码头集装箱
- 18. 码头集装箱连接
- 19. 暂停码头集装箱
- 20. OpenJ9和码头集装箱?
- 21. 共享码头集装箱
- 22. 在码头集装箱内运行码头?
- 23. mvn码头:码头集装箱内运行分叉?
- 24. 码头集装箱如何检查它是否有能力
- 25. 检查码头集装箱FS从主机变化
- 26. 如何检查mongodb码头集装箱是否打开
- 27. 如何链接一个码头集装箱与另一个码头集装箱
- 28. 码头集装箱内所有外部DNS查询失败
- 29. 码头集装箱内的接入摄像头
- 30. 在码头集装箱上安装rdiff
嗯,这似乎不工作。它总是在容器中给我一个巨大的价值(9223372036854771712),我猜是系统中可用的总内存。当我在“集装箱统计数据”外面看到我现在申请的400米限制时,显示出来了。所以仍然困惑如何在容器内获得相同的值。顺便说一下,这是在docker 1.13上运行的centos容器。 – Mandragor
@Mandragor您也可以检查'/ sys/fs/cgroup'。查看我的更新。这也适用于centos。 – Sebastian
cat /sys/fs/cgroup/memory/memory.limit_in_bytes返回9223372036854771712. – Mandragor