Назад | Перейти на главную страницу

Механизм хранения WiredTiger вызывает задержку запуска MongoDB

Я тестирую обновление MongoDB (Community Edition) с 2.6 до 3.6 (установлена ​​версия 3.6.5) в своей компании. Он работает на Debian Jessie на AWS EC2. Мы наблюдаем какое-то странное поведение (или, может быть, это нормально): когда мы используем механизм хранения WiredTiger на Mongo 3.6 - между запуском службы mongo и временем, когда он начинает прослушивать соединения, есть задержка примерно в 2 минуты (зависит от типа подключенного диска). С механизмом хранения Mmapv1 он немедленно начинает прослушивать соединения. В базе данных более 16 тыс. Коллекций с очень разным количеством документов в них (от нескольких до десятков тысяч), размер базы данных с включенным сжатием составляет около 4,5 ГБ, без сжатия ~ 11 ГБ

Сервер, на котором он работает, - это экземпляр AWS EC2 c4.xlarge (4 ядра, 8 ГБ ОЗУ), я пробовал подключать разные тома - магнитный (здесь время запуска было даже 4-5 минут), gp2 (300/3000 IOPS) , io1 (с IOPS на уровне 1000). Не было значительной разницы во времени запуска при наличии файлов базы данных на томе gp2 или io1 (тома созданы с нуля, а не из моментальных снимков, поэтому разогрев диска AWS здесь не имеет значения). Большая часть времени запуска тратится на контрольную точку WT, из mongod.log:

2018-07-18T13:25:11.119+0200 D STORAGE  [WTCheckpointThread] starting WTCheckpointThread thread
2018-07-18T13:26:11.418+0200 D STORAGE  [initandlisten] Slow WT transaction. Lifetime of SnapshotId 1 was 60259ms

Независимо от типа файловой системы EXT3 или XFS, файловая система монтируется с параметром noatime или без него, прозрачные огромные страницы отключены или включены, опережающее чтение отключено или включено - это всегда между 60 с - 120 с (или иногда больше). Я также пробовал использовать отдельный каталог для индекса WiredTiger, но это не ускорилось. У нас отключено ведение журнала базы данных, во время тестов реплика не устанавливается (но в производственной среде репликация будет).

Есть идеи, что еще я могу попробовать? или, может быть, это нормальное поведение, из наблюдения за запуском я заметил, что во время контрольной точки WT он обращается к каждому файлу коллекции (около ~ 16k файлов), поэтому я предполагаю, что запуск в основном задерживается.

Такая задержка запуска нормальна для WiredTiger или я что-то пропустил?