добавьте в конфиг монги storage.wiredTiger.engineConfig.cacheSizeGB с разумным значением (чем меньше будет кеша - тем больше нагрузки на CPU). Но много и не надо. Попробуйте 1 и увеличте если надо будет.
Была у меня задача где монга с шардингом подошла идеально - сбор и архивирование логов действий пользователей. Были десятки миллионов действий в день. Тут понадобилась и гибкая структура и легкий шардинг на запись. Шардили коллекции по дате записи. TTL не использовали.
добавите в конфиг:
storage.wiredTiger.engineConfig.cacheSizeGB: 2 ( или сколько вы ему позволите)
По умолчанию там 60% от RAM что он и скушает со временем.