中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker對cpu使用以及在kubernetes中的用法

發布時間:2021-07-06 09:07:59 來源:億速云 閱讀:535 作者:chen 欄目:大數據

這篇文章主要講解了“docker對cpu使用以及在kubernetes中的用法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“docker對cpu使用以及在kubernetes中的用法”吧!

docker對CPU的使用

docker對于CPU的可配置的主要幾個參數如下:

  --cpu-shares                    CPU shares (relative weight)
  --cpu-period                    Limit CPU CFS (Completely Fair Scheduler) period
  --cpu-quota                     Limit CPU CFS (Completely Fair Scheduler) quota
  --cpuset-cpus                   CPUs in which to allow execution (0-3, 0,1)

這些參數主要是通過配置在容器對應cgroup中,由cgroup進行實際的CPU管控。其對應的路徑可以從cgroup中查看到

cpuset-cpus

[root@node-156 ~]# cat /sys/fs/cgroup/cpuset/docker/12c35c978d926902c3e5f1235b89a07e69d484402ff8890f06d0944cc17f8a71/cpuset.cpus
0-31

cpuset主要用于指定容器運行的CPU編號,也就是我們所謂的綁核。

cpushare

[root@node-156 ~]# cat /sys/fs/cgroup/cpu/docker/12c35c978d926902c3e5f1235b89a07e69d484402ff8890f06d0944cc17f8a71/cpu.shares
1024

cpushare主要用于cfs中調度的權重。一般來說,在條件相同的情況下,cpushare值越高的,將會分得更多的時間片。

兩個容器的CPU時間片比重并不是嚴格權重的比值,因為兩個容器可能對CPU時間片的需求不同。

cpu-period和cpu-quota

[root@node-156 ~]# cat /sys/fs/cgroup/cpu/docker/12c35c978d926902c3e5f1235b89a07e69d484402ff8890f06d0944cc17f8a71/cpu.cfs_quota_us 
-1
[root@node-156 ~]# cat /sys/fs/cgroup/cpu/docker/12c35c978d926902c3e5f1235b89a07e69d484402ff8890f06d0944cc17f8a71/cpu.cfs_period_us 
100000

cfs_quota_uscfs_period_us兩個值是聯合使用的,兩者的比值,即cfs_quota_us/cfs_period_us代表了該容器實際可用的做多的CPU核數。

比如cfs_quota_us=50000,cfs_period_us=100000,那么二者的比值是0.5,也就是說該容器可以使用0.5個cpu。這樣的管控粒度更細,在cgroup使用systemd時最低可以到0.01核。

cfs_quota_us如果為-1,則表示容器使用CPU不受限制。

綁核方式的益處和弊端

我們先前主要使用的是cpuset,也就是通過綁核的方式。這一方式嚴格的保證了容器可以使用的CPU的真正的核數。并通過調度使得其他容器不綁定這幾個CPU,使得容器可以獨享這些cpu。這也就意味著容器的最多使用的CPU個數和最小消耗的CPU的數目都是這些核數。

這樣的方式安全性高,保證容器的效率,但是弊端也很多:

  • 不夠靈活

  • 資源利用率低,因為容器可能聲明使用了多個CPU,但是實際利用率很低

  • 在NUMA架構下,未考慮CPU親和性的話,可能會導致性能下降

kubernetes中的CPU使用

kubernetes對容器可以設置兩個值:

spec.containers[].resources.limits.cpu
spec.containers[].resources.requests.cpu

limits主要用以聲明使用的最大的CPU核數。通過設置cfs_quota_uscfs_period_us。比如limits.cpu=3,則cfs_quota_us=300000。

cfs_period_us值一般都使用默認的100000

request則主要用以聲明最小的CPU核數。一方面則體現在設置cpushare上。比如request.cpu=3,則cpushare=1024*3=3072。

另一方面是提供調度時候使用。

當創建一個Pod時,Kubernetes調度程序將為Pod選擇一個節點。每個節點具有每種資源類型的最大容量:可為Pods提供的CPU和內存量。調度程序確保對于每種資源類型,調度的容器的資源請求的總和小于節點的容量。盡管節點上的實際內存或CPU資源使用量非常低,但如果容量檢查失敗,則調度程序仍然拒絕在節點上放置Pod。

而計算節點CPU的已經分配的量就是通過計算所有容器的request的和得到的。

可以參考Managing Compute Resources for Containers

kubernetes對CPU使用的益處

  • 更加靈活,更細粒度的控制。CPU的限制不僅僅在CPU核這個級別,甚至可以到0.01核。

  • CPU復用。綁核之后容器既無法使用其他的CPU,容器自己本身綁定的CPU也無法被其他容器使用。最小最大資源使用量都是這幾個核。而kubernetes的方式可以實現所有的CPU成為一個CPU池,提供給CPU使用。

  • 可控和可靠的“超賣”

  • best-effort任務支持。可以充分利用閑置的CPU資源,使得best-effort任務得到最大限度的資源支持。同時當資源緊張時,又可以優先殺死best-effort,保證Guaranteed的容器的資源使用。可以參考Resource Quality of Service in Kubernetes。

感謝各位的閱讀,以上就是“docker對cpu使用以及在kubernetes中的用法”的內容了,經過本文的學習后,相信大家對docker對cpu使用以及在kubernetes中的用法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄陵县| 建湖县| 广元市| 宁都县| 济南市| 永丰县| 大兴区| 盐边县| 瑞安市| 和硕县| 山丹县| 铁岭县| 石棉县| 桃园县| 孟津县| 昌都县| 乌拉特后旗| 鱼台县| 海伦市| 连江县| 宜州市| 中山市| 来凤县| 恩施市| 武平县| 龙岩市| 顺昌县| 荆州市| 侯马市| 东乌珠穆沁旗| 诏安县| 三河市| 彩票| 横峰县| 孟连| 黄梅县| 呼玛县| 贡嘎县| 新密市| 扶风县| 西平县|