Для эксперимента я пытаюсь запустить как можно больше виртуальных машин через libvirt, однако, когда запущено чуть более 1000 виртуальных машин, я получаю сообщение об ошибке: «Не удалось создать канал: слишком много открытых файлов». Есть идеи, как это исправить?
Я установил мягкие и высокие ограничения ulimit для всех пользователей на 4096, но при проверке: / proc / 'process pid of the libvirt daemon' / limits он все еще говорит, что мягкий предел равен 1024 (жесткое ограничение установлено на 4096). При проверке ulimit для любого пользователя с помощью 'ulimit -Sn' или 'ulimit -Hn' ограничения кажутся установленными так, как задумано.
Это происходит на сервере Ubuntu 12.04 с использованием libvirtd 0.9.8.
Вероятно, вам нужно увеличить количество открытых файлов, обрабатываемых ядром, например по
sysctl -w fs.file-max=100000
Настройте значение по вкусу (sysctl fs.file-max
сообщает вам текущее значение). Файл /etc/sysctl.conf
используется для установки конфигурации при загрузке.