最近需要一个sandbox,里面会运行用户的命令、程序。最近初学Docker,所以想利用Docker来实现。
但是看了一些资料,还是没搞明白怎么样才能对Docker容器的内存、CPU、磁盘等进行限制。
昨天试了一下docker run
加-m
参数来限制内存,算是有点用吧。使用-c
来限制CPU,貌似不太可行。运行一个无限fork
程序就把整个系统给拖死了。
所以想问一下究竟应该是怎么用的?
怪我咯2017-04-21 10:57:52
-c は CPU 使用率を制限することを意味するのではなく、プロセスのグループの相対的な CPU 使用率を意味します。ホスト上の Docker プロセスは、cgroup で定義された単位で他のすべてのプロセスと同様に動作します。 CPU スケジューリングは行われますが、同じ cgroups の CPU 制限単位で CPU 使用率を共有するため、同じ cgroups 制限単位内に複数の docker プロセスがある場合、使用量を共有しますが、それらが一緒に CPU100 を発生することを防ぐことはできません。 .%。