Я запускаю MongoDB на Ubuntu на одном AWS EC2 как m4.2xlarge. Диск составляет 1280 ГБ io1 22000 IOPS в файловой системе XFS, заполнен на 73% (используется только для MongoDB). Версия сервера MongoDB - 3.4.10.
У меня есть коллекция из 11,8 миллиардов документов. Я приступил к созданию фонового индекса для этой коллекции по одному полю Int64. Он работает уже несколько дней, индекс заполнен только на 23%. Все началось быстро, но сейчас скорость составляет около 4,5 тыс. Документов в секунду. Если ставка останется, индексация будет завершена еще через 20+ дней. Это совершенно недопустимо. Скорость загрузки документов в секунду снижалась с начала индексирования.
На данный момент сервер не зависит от других запросов. К сожалению, я не могу запустить индекс переднего плана, так как есть другие базы данных, которые активно используются.
Что я могу сделать, чтобы это ускорить? Любые предложения приветствуются. Должен ли я остановить индекс, усилить инстанс EC2 и попробовать еще раз? Я не вижу, чтобы процессор слишком сильно работал. Стоит ли менять файловую систему? Повлияет ли обновление до MongoDB 3.6.2 на производительность индексации?
Есть ли какие-нибудь показатели CloudWatch для моего диска, которые открывают мне глаза?
В итоге я сделал индекс переднего плана, который, похоже, работал со скоростью в 1000 раз быстрее фонового индекса. Это временно лишило возможности использовать базу данных, но оно того стоило.
Я надеюсь, что это поможет кому-то.