WiredTiger - "ошибка слишком большого количества открытых файлов" во время повторной синхронизации элемента набора дополнительных реплик

Я обновляю элемент набора вторичных реплик до wiredTiger. Я обновил его с MongoDB 2.6.3 до 3.0.4 и изменил механизм хранения на wiredTiger. Теперь происходит повторная синхронизация всех данных с первичной. В какой-то момент появляется следующая ошибка, и процесс начинается заново:

2015-07-22T13: 18: 55.658 + 0000 I INDEX [rsSync] индекс здания с использованием метода массовой обработки

2015-07-22T13:18:55.664+0000 I INDEX Индекс сборки [rsSync] завершен. отсканировано 1591 записей. 0 секунд

2015-07-22T13:18:56.397+0000 E STORAGE [rsSync] WiredTiger (24) [1437571136:397083][20413:0x7f3d9ed29700], файл:WiredTiger.wt, session.create: WiredTiger.turtle: fopen: слишком много открытых файлы

2015-07-22T13:18:56.463+0000 E REPL [rsSync] 8 24: слишком много открытых файлов

2015-07-22T13: 18: 56.463 + 0000 E REPL [rsSync] первоначальная попытка синхронизации не удалась, осталось 9 попыток

На той же машине ранее работала версия 2.6.3 без каких-либо проблем с ограничением количества открытых файлов. Я знаю, что wiredTiger может создавать гораздо больше файлов, так что это должно быть так, но поддерживает ли он их все одновременно?

Для справки:

cat / proc/ sys / fs / file-max

10747371

В /etc/init.d/mongod конфигурация:

ulimit -n 64000

Согласно документации кажется, что Mongo содержит дескриптор файла для каждого файла данных. Как и в wiredTiger, это приводит к тому, что файл для каждой коллекции + файл для каждого индекса, согласно расчету для нашего сценария использования, может содержать до 700 КБ.

Поэтому я могу изменить ulimit на 700000 или выше, но мне интересно, является ли это наиболее правильным решением и какие существуют альтернативы.

1 ответ

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

Так что да, в основном вам нужно увеличивать лимит до тех пор, пока вы не перестанете сталкиваться с проблемой, не будете придерживаться MMAPv1 или консолидировать некоторые коллекции. Я также рекомендовал бы подать запрос на добавление функциональности с указанием вашего варианта использования с номерами образцов, чтобы предотвратить этот тип шаблона (например, более одной коллекции на файл).

Другие вопросы по тегам