Как установить ulimit для mongod
процесс / пользователь на CentOS?
Я прочтите официальную документацию но он не предоставляет инструкций для конкретной ОС.
Мне нужно установить ulimit -u 64000
и нужно, чтобы это сохранялось после перезагрузки.
Я использую CentOS 5.5, но скоро обновлюсь до 6.5.
Я бы предпочел не изменять скрипты, установленные менеджером пакетов
Изменить /etc/security/limits.conf
с тем, что вам нужно. Пример:
user soft nproc 64000
В этой строке будет установлено количество процессоров (-u
) до 64000 для "пользователя". Мягкие / жесткие ограничения могут быть одинаковыми (мягкие разрешают шипы, а жесткие предотвращают появление).
В более новой версии сценария запуска CentOS mongod (/etc/init.d/mongod) настройки по умолчанию встроены в параметр запуска:
start()
{
# Recommended ulimit values for mongod or mongos
# See http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
#
ulimit -f unlimited
ulimit -t unlimited
ulimit -v unlimited
ulimit -n 64000
ulimit -m unlimited
ulimit -u 32000
echo -n $"Starting mongod: "
daemon --user "$MONGO_USER" "$NUMACTL $mongod $OPTIONS >/dev/null 2>&1"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/mongod
}
Если вы хотите изменить значения, а не сценарий, скопируйте сценарий в /etc/init.d/mongod-custom, затем отредактируйте настраиваемый сценарий инициализации, установите свои значения и измените chkconfig на использование mongod-custom вместо mongod.
Чтобы добавить к ответу thaspius, кажется, что ограничения установлены, как он описывает в сценарии инициализации, но я все еще получал предупреждение
[initandlisten] ** WARNING: soft rlimits too low. rlimits set to 1024 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
Похоже, это говорит о том, что ограничение количества файлов, определенное в сценарии инициализации, вступило в силу, но не ограничение процессов. Также после ответа Натана С и добавления
mongod soft nproc 64000
к /etc/security/limits.d/90-nproc.conf
и перезапуск системы решил проблему.
Если кто-то может пролить свет на то, почему это было необходимо, несмотря на наличие значений в сценарии инициализации mongodb, я все слышу!
Сделайте это изменение в /etc/security/limits.conf
файл. Установите жесткие и мягкие пределы, и все будет хорошо.
Чтобы изменение было постоянным, вам необходимо отредактировать сценарий инициализации, например, в Red Hat 7 сценарий инициализации имеет следующую строку:
LimitNOFILE=64000
Вам нужно добавить следующий:
LimitNPROC=32000
А затем перезапустите службу.
Надеюсь, это поможет.