Назад | Перейти на главную страницу

Как установить ulimit для mongod?

Как установить ulimit для mongod процесс / пользователь на CentOS?

Я прочтите официальную документацию но он не предоставляет инструкций для конкретной ОС.

Изменить /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

А затем перезапустите службу.

Надеюсь, это поможет.