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

Я не уверен, что вижу точку этого. Обычно этот вид установки используется, если у Вас есть внутренний ресурс, который должен быть доступным внутренне и внешне. Ваш внешний доступ достигается перенаправлением портов, и Вы подтвердили, что это хорошо работает.

Для внутреннего доступа необходимо скорее использовать, разделяет DNS. Это - установка, посредством чего Ваш внутренний сервер DNS разрешает те же имена как Ваш общедоступный DNS, но к внутренним IP-адресам. Это может быть достигнуто или при помощи отдельных серверов DNS или при помощи одного сервера DNS с отдельными представлениями для внутреннего и внешнего доступа.

Это решило бы Вашу проблему?

8
задан 28 April 2014 в 19:42
5 ответов

Измените /etc/security/limits.conf тем, что вам нужно. Пример:

user soft nproc 64000

Эта строка установит количество процессоров ( -u ) на 64000 для «пользователя». Мягкие / жесткие пределы могут быть одинаковыми (мягкие разрешают шипы, а жесткие предотвращают появление).

11
ответ дан 2 December 2019 в 22:43

Внесите это изменение в файл /etc/security/limits.conf . Установите жесткие и мягкие пределы, и все будет хорошо.

1
ответ дан 2 December 2019 в 22:43

В более новой версии сценария запуска 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.

7
ответ дан 2 December 2019 в 22:43

Чтобы добавить к ответу thaspius, ограничения кажутся установлен, как он описывает в сценарии инициализации, но я все еще получал предупреждение

[initandlisten] ** ПРЕДУПРЕЖДЕНИЕ: soft rlimits слишком низкие. rlimits установлен на 1024 процесса, 64000 файлов. Количество процессов должно быть не менее 32000: 0,5-кратное количество файлов.

Похоже, это говорит о том, что ограничение количества файлов, определенное в сценарии инициализации, вступило в силу, но не ограничение количества процессов. Также следуя ответу Натана С и добавив

mongod soft nproc 64000

в /etc/security/limits.d/90-nproc.conf и перезапустив систему, проблема была решена.

Если любой может пролить свет на то, почему это было необходимо, несмотря на наличие значений в скрипте инициализации mongodb, я все слышу!

5
ответ дан 2 December 2019 в 22:43

Чтобы изменение было постоянным, вам необходимо отредактировать сценарий инициализации, например, в Red Hat 7 сценарий инициализации имеет следующую строку:

LimitNOFILE=64000

Вы должны добавить следующую:

LimitNPROC=32000

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

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

1
ответ дан 2 December 2019 в 22:43

Теги

Похожие вопросы