Как настроить ограничение дескриптора файла linux с помощью fs.file-max и ulimit
Серверные приложения, работающие в Linux, часто требуют большого количества обработчиков открытых файлов, например. HBase ulimit, Hadoop epoll limit
Эта вики должна служить документальным документом для настройки ограничений файлов Linux.
- Что такое мягкий и жесткий лимит?
- Как контролировать жесткий лимит?
- Как контролировать мягкий предел?
- Связаны ли ядро fs.file-max и пользовательский ulimit -n?
Пожалуйста, опишите дистрибутив Linux, в котором ваша конфигурация действительна, так как разные производители конфигурируют вещи по-разному.
Обновление на основе ответа lstvan:
Для тех, кто хочет автоматизировать это, по крайней мере, на серверах Ubuntu вы можете добавить это в сценарии установки вашего компьютера:
echo 'fs.file-max = 65000' > /etc/sysctl.d/60-file-max.conf
echo '* soft nofile 65000' > /etc/security/limits.d/60-nofile-limit.conf
echo '* hard nofile 65000' >> /etc/security/limits.d/60-nofile-limit.conf
echo 'root soft nofile 65000' >> /etc/security/limits.d/60-nofile-limit.conf
echo 'root hard nofile 65000' >> /etc/security/limits.d/60-nofile-limit.conf
2 ответа
Ваша операционная система устанавливает ограничения на количество файлов, которые могут быть открыты любым запущенным приложением на вашем хосте. Вы можете легко расширить базовые значения, обычно до 1024, изменив 2 файла конфигурации:
# vi /etc/sysctl.conf
fs.file-max = 32000
# vi /etc/security/limits.conf
youruser soft nofile 10000
youruser hard nofile 30000
Жесткие и мягкие ограничения:
man 5 limit.conf
hard
for enforcing hard resource limits. These limits are set by the superuser and
enforced by the Kernel. The user cannot raise his requirement of system resources
above such values.
soft
for enforcing soft resource limits. These limits are ones that the user
can move up or down within the permitted range by any pre-exisiting hard
limits. The values specified with this token can be thought of as default values,
for normal system usage.
НТН
Если вы увеличиваете лимиты файлов в Ubuntu, вы можете использовать звездочки, чтобы указать "все пользователи" для мягких и жестких ограничений файлов. Однако это не будет включать в себя пользователя root, и, следовательно, вам нужно определить его отдельно, если вы хотите, чтобы увеличенные ограничения применялись также и для пользователя root (и поэтому вы можете установить различные ограничения "для пользователя root" и "для всех". еще "), вот так:
* soft nofile 4096
* hard nofile 10240
root soft nofile 4096
root hard nofile 10240
Возможно, это самый чистый способ добавить их в отдельный файл, такой как /etc/security/limits.d/60-nofile-limit.conf