假设一台物理机上跑了3个容器,启动的时候分配的cpu share是一样的,那如果在一个容器满负载,而另外两个空闲的情况下,那单个容器有可能跑满物理机的CPU吗,还是说撑死只能跑到30%?
人生最曼妙的风景,竟是内心的淡定与从容!
Docker가 Python 프로세스를 실행하는 경우 단일 프로세스가 단일 코어를 실행할 수 있습니다(GIL에 의해 제한됨). 실제로 프로세스 목록을 보면 vagrant와 달리 docker 프로세스 자체가 시스템에 통합되어 있음을 알 수 있습니다. 프로세스.
진행 상황을 지켜보세요
CPU 점유량
아, 공유를 사용하면 프로세스가 이 코어에 묶이게 됩니다. 그리고 top을 이용해서 보면 프로세스가 100%라는 것을 알 수 있는데, 이 100%가 바로 이 코어에 100%입니다 3코어로 실행하면 300%가 됩니다
시작할 때 각 컨테이너에 동일한 CPU 공유를 할당하더라도 마찬가지입니다. 다른 두 컨테이너가 유휴 상태일 때 나머지 컨테이너는 여전히 전체 코어를 채울 수 있습니다.
cpu 공유는 컨테이너의 CPU 사용량 하한을 제한하는 것 같은 느낌을 줍니다. CPU 사용량의 상한을 제한하려면 cgroup을 통해 컨테이너의 설정을 수정해야 합니다.
흥미로운 질문이네요. 한번 실험해 봐야겠네요.
누가 실험을 하고 프로세서를 채우는 루프를 작성할까요?
Docker가 Python 프로세스를 실행하는 경우 단일 프로세스가 단일 코어를 실행할 수 있습니다(GIL에 의해 제한됨). 실제로 프로세스 목록을 보면 vagrant와 달리 docker 프로세스 자체가 시스템에 통합되어 있음을 알 수 있습니다. 프로세스.
진행 상황을 지켜보세요
으아아아CPU 점유량
아, 공유를 사용하면 프로세스가 이 코어에 묶이게 됩니다.
그리고 top을 이용해서 보면 프로세스가 100%라는 것을 알 수 있는데, 이 100%가 바로 이 코어에 100%입니다
3코어로 실행하면 300%가 됩니다
시작할 때 각 컨테이너에 동일한 CPU 공유를 할당하더라도 마찬가지입니다. 다른 두 컨테이너가 유휴 상태일 때 나머지 컨테이너는 여전히 전체 코어를 채울 수 있습니다.
cpu 공유는 컨테이너의 CPU 사용량 하한을 제한하는 것 같은 느낌을 줍니다. CPU 사용량의 상한을 제한하려면 cgroup을 통해 컨테이너의 설정을 수정해야 합니다.
흥미로운 질문이네요. 한번 실험해 봐야겠네요.
누가 실험을 하고 프로세서를 채우는 루프를 작성할까요?