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 или консолидировать некоторые коллекции. Я также рекомендовал бы подать запрос на добавление функциональности с указанием вашего варианта использования с номерами образцов, чтобы предотвратить этот тип шаблона (например, более одной коллекции на файл).