Я не уверен, что вижу точку этого. Обычно этот вид установки используется, если у Вас есть внутренний ресурс, который должен быть доступным внутренне и внешне. Ваш внешний доступ достигается перенаправлением портов, и Вы подтвердили, что это хорошо работает.
Для внутреннего доступа необходимо скорее использовать, разделяет DNS. Это - установка, посредством чего Ваш внутренний сервер DNS разрешает те же имена как Ваш общедоступный DNS, но к внутренним IP-адресам. Это может быть достигнуто или при помощи отдельных серверов DNS или при помощи одного сервера DNS с отдельными представлениями для внутреннего и внешнего доступа.
Это решило бы Вашу проблему?
Измените /etc/security/limits.conf
тем, что вам нужно. Пример:
user soft nproc 64000
Эта строка установит количество процессоров ( -u
) на 64000 для «пользователя». Мягкие / жесткие пределы могут быть одинаковыми (мягкие разрешают шипы, а жесткие предотвращают появление).
Внесите это изменение в файл /etc/security/limits.conf
. Установите жесткие и мягкие пределы, и все будет хорошо.
В более новой версии сценария запуска 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] ** ПРЕДУПРЕЖДЕНИЕ: soft rlimits слишком низкие. rlimits установлен на 1024 процесса, 64000 файлов. Количество процессов должно быть не менее 32000: 0,5-кратное количество файлов.
Похоже, это говорит о том, что ограничение количества файлов, определенное в сценарии инициализации, вступило в силу, но не ограничение количества процессов. Также следуя ответу Натана С и добавив
mongod soft nproc 64000
в /etc/security/limits.d/90-nproc.conf
и перезапустив систему, проблема была решена.
Если любой может пролить свет на то, почему это было необходимо, несмотря на наличие значений в скрипте инициализации mongodb, я все слышу!
Чтобы изменение было постоянным, вам необходимо отредактировать сценарий инициализации, например, в Red Hat 7 сценарий инициализации имеет следующую строку:
LimitNOFILE=64000
Вы должны добавить следующую:
LimitNPROC=32000
А затем перезапустите службу.
Надеюсь, это поможет.