Docker容器資源管理

2021-08-26 23:41:56 字數 1216 閱讀 2772

前言

在進行集群實驗時,由於物理機不夠用,而在一台物理機裝虛擬機器又會造成很大的資源開銷,電腦執行緩慢。而容器則為我們提供了一種很好的解決方式。docker也在近幾年很快擴充套件開來,被用以微服務架構的搭建和實驗。

那麼,使用docker建立的容器與物理機之間的資源占用是怎樣的呢?下面我們來具體說明。

1.基礎概念

docker使用cgroups歸類執行在容器中的程序。這使得可以管理一組程序的資源,可想而知,這是非常寶貴的。

如果你執行乙個作業系統,其使用systemd管理服務。每個程序(不僅僅是容器中的程序)都將進入乙個cgroups樹中,如果你執行systemd-cgls命令,可以看到:

當我們想管理資源的時候,這個方法提供了很大的靈活性,因為我們可以分別管理每個組。儘管這篇部落格文章著重於容器,但同樣的原則也適用於其他的程序。

systemd-cgtop
可以檢視該主機上使用最多資源的容器

2.資源

cpu

docker能指定(通過執行命令的-c 開關)給乙個容器分配可用的cpu,這是乙個相對權重,與實際的速度無關。事實上,沒有辦法說乙個容器只可以獲得1ghz cpu。

每乙個新的容器預設有1024cpu配額。(這個還不確定怎麼解釋)

如果我們啟動兩個容器並且兩個都將用100%cpu,cpu時間將在這兩個容器之間平均分割,因為它們兩個都有一樣的cpu配額(假設沒有其他程序進行的話)。

如果我們設定容器的cpu配額是512,相對於另外乙個容器,它將使用一半的cpu時間。但這不意味著它僅僅能使用一半的cpu時間。如果另外乙個容器(1024配額的)是空閒的 - 我們的容器將被允許使用100%cpu。這是需要注意的另外一件事。

限制僅僅當它們應該被執行的時候才會強制執行。cgroups不限制程序預先使用(比如,不允許它們更快地執行即使它們有空餘資源)。相反的,它提供了它盡可能提供的以及它僅僅在必需的時候限制(比如,當太多的程序同時大量地使用cpu)。

當然,這很難說清楚(我想說的是這不可能說清楚的)多少資源應該被分配給你的程序。這實際取決於其他程序的行為以及多少配額被分配給它們。

參考

MTK資源管理

資源檔案生成的臨時檔案主要有 custmenutree out.c,這個檔案是選單臨時檔案,生成了我們的最終顯示的選單結構。如果你新增的選單沒有顯示,正常顯示的選單突然不顯示了或者顯示錯位了,或者顯示的選單與呼叫的功能不符合了,都可以從這裡查到原因。resource base table.txt這個...

MTK資源管理

使用mtk作開發,常常不可避免和資源打交道,常使用的資源有字串,字型,選單,風格,聲音等,mtk好像沒有系統的專門的資源管理工具,導 致資源管理十分凌亂而容易出問題,雖然有些牛人也開發了一些工具來管理這些資源,但由於使用不便或者其他一些原因,比如資源由大量的巨集控制,以及修改維護 的人多,還有一些其...

linux 資源管理

一 系統資源 網路資源 儲存資源,計算資源 二 系統資源管理名命令 1.檢視目錄下的檔案使用情況 du sh 目錄 檔案 注 du sh檢視的是目錄 檔案占用block塊的大小 ll h檢視檔案 目錄的本身大小 2.檢視檔案系統 格式化好的分割槽 的使用情況 df h 注 檢視檔案系統使用i節點的情...