經過與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