扫码关注官方订阅号
假设一台物理机上跑了3个容器,启动的时候分配的cpu share是一样的,那如果在一个容器满负载,而另外两个空闲的情况下,那单个容器有可能跑满物理机的CPU吗,还是说撑死只能跑到30%?
人生最曼妙的风景,竟是内心的淡定与从容!
如果docker跑的是python进程,单进程可以跑满单核(受限于GIL),其实看进程列表就知道不同于vagrant,docker的进程本身是融汇在系统进程里面的。
看你的进程
docker-proxy -proto tcp
能占多少CPU
哦你用了share,那这个进程就被绑死在这个核上了。 又及,你用top看能看到这个进程是100%,不过这个100%是这个核上的100% 如果跑满3核就是300%
启动时即使你给每个容器分配了相同的cpu share。在其他两个容器空闲的情况下,剩下的容器依然可以把整个核跑满。
cpu share给我的感觉是限制了该容器cpu使用率的下限。如果你想限制cpu使用率的上限,就需要自己通过cgroup去修改该容器的设置。
是个有意思的问题,应该做个实验试试。
谁来做实验嘛,写个循环把处理器占满?
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
如果docker跑的是python进程,单进程可以跑满单核(受限于GIL),其实看进程列表就知道不同于vagrant,docker的进程本身是融汇在系统进程里面的。
看你的进程
能占多少CPU
哦你用了share,那这个进程就被绑死在这个核上了。
又及,你用top看能看到这个进程是100%,不过这个100%是这个核上的100%
如果跑满3核就是300%
启动时即使你给每个容器分配了相同的cpu share。在其他两个容器空闲的情况下,剩下的容器依然可以把整个核跑满。
cpu share给我的感觉是限制了该容器cpu使用率的下限。如果你想限制cpu使用率的上限,就需要自己通过cgroup去修改该容器的设置。
是个有意思的问题,应该做个实验试试。
谁来做实验嘛,写个循环把处理器占满?