假设一台物理机上跑了3个容器,启动的时候分配的cpu share是一样的,那如果在一个容器满负载,而另外两个空闲的情况下,那单个容器有可能跑满物理机的CPU吗,还是说撑死只能跑到30%?
PHP中文网2017-04-21 11:18:37
Docker가 Python 프로세스를 실행하는 경우 단일 프로세스가 단일 코어를 실행할 수 있습니다(GIL에 의해 제한됨). 실제로 프로세스 목록을 보면 vagrant와 달리 docker 프로세스 자체가 시스템에 통합되어 있음을 알 수 있습니다. 프로세스.
怪我咯2017-04-21 11:18:37
진행 상황을 지켜보세요
으아아아CPU 점유량
아, 공유를 사용하면 프로세스가 이 코어에 묶이게 됩니다.
그리고 top을 이용해서 보면 프로세스가 100%라는 것을 알 수 있는데, 이 100%가 바로 이 코어에 100%입니다
3코어로 실행하면 300%가 됩니다
ringa_lee2017-04-21 11:18:37
시작할 때 각 컨테이너에 동일한 CPU 공유를 할당하더라도 마찬가지입니다. 다른 두 컨테이너가 유휴 상태일 때 나머지 컨테이너는 여전히 전체 코어를 채울 수 있습니다.
cpu 공유는 컨테이너의 CPU 사용량 하한을 제한하는 것 같은 느낌을 줍니다. CPU 사용량의 상한을 제한하려면 cgroup을 통해 컨테이너의 설정을 수정해야 합니다.