为了进行实验,我尝试通过 libvirt 启动尽可能多的虚拟机,但是当运行 1000 多个虚拟机时,我收到一条错误消息:“无法创建管道:打开的文件太多”。有没有什么办法可以解决这个问题?
我已将所有用户的 ulimit 软限制和高限制设置为 4096,但检查 /proc/'process pid of the libvirt daemon'/limits 时,它仍然显示软限制为 1024(硬限制已设置为 4096)。通过“ulimit -Sn”或“ulimit -Hn”检查任何用户的 ulimit 时,限制似乎按预期设置。
这是在 Ubuntu 12.04 Server 上发生的,使用 libvirtd 0.9.8
答案1
您可能需要增加内核处理的打开文件的数量,例如
sysctl -w fs.file-max=100000
根据需要调整值(sysctl fs.file-max
告诉您当前值)。该文件/etc/sysctl.conf
用于在启动时设置配置。