搜尋

首頁  >  問答  >  主體

lxc - docker的一個容器可以跑滿實體機的CPU嗎

假設一台物理機上跑了3個容器,啟動的時候分配的cpu share是一樣的,那如果在一個容器滿負載,而另外兩個空閑的情況下,那單個容器有可能跑滿物理機的CPU嗎,還是說撐死隻能跑到30%?

黄舟黄舟2841 天前1076

全部回覆(5)我來回復

  • PHP中文网

    PHP中文网2017-04-21 11:18:37

    如果docker跑的是python進程,單進程可以跑滿單核(受限於GIL),其實看進程列表就知道不同於vagrant,docker的進程本身是融匯在系統進程裡面的。

    回覆
    0
  • 怪我咯

    怪我咯2017-04-21 11:18:37

    看你的進程

    docker-proxy -proto tcp 
    

    能佔多少CPU

    哦你用了share,那這個進程就被綁死在這個核上了。
    又及,你用top看能看到這個進程是100%,不過這個100%是這個核上的100%
    如果跑滿3核就是300%

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-21 11:18:37

    啟動時即使你給每個容器分配了相同的cpu share。在其他兩個容器空閒的情況下,剩下的容器依然可以把整個核跑滿。

    cpu share給我的感覺是限制了該容器cpu使用率的下限。如果你想限制cpu使用率的上限,就需要自己透過cgroup去修改該容器的設定。

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-21 11:18:37

    是個有意思的問題,應該要做個實驗試試。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-21 11:18:37

    誰來做實驗嘛,寫個循環把處理器佔滿?

    回覆
    0
  • 取消回覆