docker中ulimit不能配置的风险

1、什么是 ulimit

Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数。

ulimit主要是用来限制进程对资源的使用情况的,它支持各种类型的限制,常用的有:

  • 内核文件的大小限制
  • 进程数据块的大小限制
  • Shell进程创建文件大小限制
  • 可加锁内存大小限制
  • 常驻内存集的大小限制
  • 打开文件句柄数限制
  • 分配堆栈的最大大小限制
  • CPU占用时间限制用户最大可用的进程数限制
  • Shell进程所能使用的最大虚拟内存限制

2、docker中的ulimit

docker不能直接配置ulimit参数,因为ulimit是Linux内核参数,而docker是共享系统资源的 只不过是做了资源隔离和运行时隔离 ,如果需要调整容器的ulimit参数,把宿主机系统的调大即可。

因此存在风险:部署一个容器,拼命启动线程,理论上会拖垮宿主机的操作系统(死循环测试已然击垮两台宿主机),暂时没有想到完全的限制方法,只能通过先把虚拟机的ulimit调到最大规避风险,希望后续docker版本能有解决方法。

你可能感兴趣的:(docker中ulimit不能配置的风险)