共計 954 個字符,預計需要花費 3 分鐘才能閱讀完成。
本篇文章給大家分享的是有關如何限制容器對 CPU 的使用,丸趣 TV 小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。
默認設置下,所有容器可以平等地使用 host CPU 資源并且沒有限制。
Docker 可以通過 -c 或 –cpu-shares 設置容器使用 CPU 的權重。如果不指定,默認值為 1024。
與內存限額不同,通過 -c 設置的 cpu share 并不是 CPU 資源的絕對數量,而是一個相對的權重值。某個容器最終能分配到的 CPU 資源取決于它的 cpu share 占所有容器 cpu share 總和的比例。
換句話說:通過 cpu share 可以設置容器使用 CPU 的優先級。
比如在 host 中啟動了兩個容器:
docker run –name container_A -c 1024 ubuntu
docker run –name container_B -c 512 ubuntu
container_A 的 cpu share 1024,是 container_B 的兩倍。當兩個容器都需要 CPU 資源時,container_A 可以得到的 CPU 是 container_B 的兩倍。
需要特別注意的是,這種按權重分配 CPU 只會發生在 CPU 資源緊張的情況下。如果 container_A 處于空閑狀態,這時,為了充分利用 CPU 資源,container_B 也可以分配到全部可用的 CPU。
下面我們繼續用 progrium/stress 做實驗。
啟動 container_A,cpu share 為 1024
–cpu 用來設置工作線程的數量。因為當前 host 只有 1 顆 CPU,所以一個工作線程就能將 CPU 壓滿。如果 host 有多顆 CPU,則需要相應增加 –cpu 的數量。
啟動 container_B,cpu share 為 512:
在 host 中執行 top,查看容器對 CPU 的使用情況
container_A 消耗的 CPU 是 container_B 的兩倍。
現在暫停 container_A
top 顯示 container_B 在 container_A 空閑的情況下能夠用滿整顆 CPU:
以上就是如何限制容器對 CPU 的使用,丸趣 TV 小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注丸趣 TV 行業資訊頻道。