I see my colleague Tyler has done an amazing job resolving this, I would like to add some background context for the behavior you had observed.
These behaviors are common for Shared Tier clients.
Information about shared tier clusters
- Shared tier clusters share resources between all tenants on the same tier.
- Resources provided to each tenant of course increase for each tier level.
- M0 has the smallest amount of resources in the shared tiers, as M5 has the most.
- The shared tier instances theoretically do gain better throughput via networking and the writing service as you go higher in tier. - Due to less tenant density.
- All tenants on the same shared tier cluster share the same networking, writing, and other resources.
MongoDB does not recommend shared tier clusters for full production environments, and we encourage at the least an M10 as a dedicated cluster for a production environment with extreme lows in traffic, but an M20 would be the better starting point. Our official recommendation overall is an M30 cluster for production environments.
We cannot guarantee stability on a live production environment on a shared tier cluster for the reasons mentioned above, as these clusters are intended for educational and development environments. As the shared cluster gains tenant density the available resources outside of the dedicated RAM, and CPU allotted to the specific tenant on creation will be spread more thin.
Once you moved to the M10, the jump in performance is due to now having dedicated resources like the writer, and so on. Resources that as mentioned above in a shared tier instance would otherwise be shared.
I hope this better clears up why you observe such differences using the M10.