Sugeriría usar mongostat mientras ejecuta sus pruebas. Hay muchas cosas que podrían estar mal, pero mongostat le dará una buena indicación.
http://docs.mongodb.org/manual/reference/mongostat/
Las dos primeras cosas que miraría son el porcentaje de bloqueo y el rendimiento de datos. Con un rendimiento razonable en máquinas dedicadas, normalmente obtengo 1000-2000 actualizaciones/inserciones por segundo antes de sufrir cualquier degradación. Este ha sido el caso de varias implementaciones de producción grandes con las que he trabajado.