Ограничения на открытие файлов

Во время установки mongo db я обнаружил предупреждение, в котором говорится, что

soft rlimits слишком низкие. rlimits установлен на 1024 процесса, 64000 файлов. Количество процессов должно быть не менее 32000: 0,5-кратное количество файлов.

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

  1. Зависят ли эти значения от ресурсов сервера ? Если да, то как я могу определить, какое максимальное значение я должен установить для своей системы?

  2. Очевидно, для производительности mongodb важны две настройки (ограничение на количество открытых файлов и количество процессов). Как мне правильно настроить количество процессов? Как проверить, не использую ли я слишком высокие значения?

0
задан 13 April 2017 в 05:23
1 ответ

Я не думаю, что это говорит вам, что количество процессов слишком мало в абсолютном смысле. Он сообщает вам, что соотношение MaxProcesses: MaxOpenFiles должно быть скорректировано.

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

Вы можете использовать cat / proc / sys / fs / file-max , чтобы узнать max-файлы, которые весь ваш сервер может открывать одновременно. Linux не имеет внутреннего ограничения на количество процессов,но если это число будет слишком большим по сравнению с числом ядер, производительность может снизиться. Вы можете узнать, каковы текущие максимально разрешенные потоки для вашего сервера (если есть), используя cat / proc / sys / kernel / threads-max . Вы также можете записать в этот файл большее или меньшее значение, чтобы настроить производительность. Теперь вы знаете общие ограничения вашего сервера.

Затем оцените типичное и максимальное количество одновременных подключений, которые вы ожидаете для базы данных. Обычно вы хотите установить для каждого пользователя ограничение на количество файлов, достаточно большое, чтобы легко справиться хотя бы со стандартной нагрузкой. Скорее всего, вы можете выбрать значение, превышающее максимальное ожидаемое количество подключений, но только вы можете решить, имеет ли это смысл для вашего общего использования и ограничений сервера. Вы можете выбрать значение для max-процессов на пользователя, которое равно max-files или меньше max-files, но mongo предупреждает вас, чтобы вы не задавали max-процессам для пользователя меньше половины max-файлов на пользователя, предположительно потому, что каждое соединение нуждается в процессе (потоке), а также в файле.

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

После того, как вы получите приблизительную оценку этих двух ограничений ресурсов, используйте ulimit, чтобы установить max- файлы и max-процессы на пользователя . Позже вы можете настроить эти значения в зависимости от фактического использования и производительности.

1
ответ дан 4 December 2019 в 16:17

Теги

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