Linux CGroup (Control Group)

在擁有多個獨立的namespace之後,如何有效的分配既有的資源,就成了另一個課題。這些都是交由Linux kernel的CGroup功能負責,限制、控制、分離Control Group的資源(包括:CPU, Memory, I/O等等)。CGroup主要的功能有

  • 限制資源上限

  • 優先權決定

  • 計算資源使用情況

  • 將process group掛起或恢復

查看/sys/fs/cgroup底下有哪些項目

當Docker建立一個容器時,會在cgroup底下建立資料夾,我在本機擁有一個portainer容器,容器ID為64577c13ad5842d3183b14f7d082b38aa8ba463aa51d2d7f9afe0179720227b1,那麼在cgroup底下我可以找到這個容器ID的資料夾,裡面列出對各項資源的限制及統計,包括memory, cpu等等

tasks顯示了64577容器內的process有哪些

利用top查詢目前各process佔用資源的情況

PID=2550佔用主機26.7%的記憶體,先查看看他是屬於哪一個容器的task,再用容器id回查容器狀態

也可利用docker stats查看各容器目前使用資源的情況

Last updated

Was this helpful?