¿Cómo mejorar el rendimiento de update () y save () en MongoDB?

Estoy buscando consejos sobre cómo mejorar el rendimiento de la base de datos en la siguiente situación.

Como una aplicación de muestra, escribí una aplicación bastante simple hoy que usa la API de transmisión de Twitter para buscar ciertas palabras clave, luego estoy almacenando los resultados en MongoDB. La aplicación está escrita con Node.js.

Estoy almacenando 2 colecciones. Uno almacena la palabra clave y una matriz de identificadores de tweets que hacen referencia a cada tweet encontrado mencionando esa palabra clave. Estos se agregan a la base de datos usando .update () con {upsert: true} para que se agreguen nuevos identificadores a la matriz 'ids'.

Un documento de muestra de esta colección se ve así:

{"_id": ObjectId ("4e00645ef58a7ad3fc9fd9f9"), "ids": ["id1", "id2", "id3"], "palabra clave": "#chocolate"}

Código de actualización:

 keywords.update({keyword: key_word},{$push:{ids: id}},{upsert:true}, function(err){})

a segunda colección tiene este aspecto y se agrega simplemente usando .save ()

 {
     "twt_id": "id1",
     "tweet": { //big chunk of json that doesn't need to be shown }
 }

Tengo esto funcionando en mi Macbook en este momento y ha estado funcionando durante aproximadamente 2 horas. Estoy almacenando unamuch de datos, probablemente varios cientos de documentos por minuto. En este momento, el número de objetos en Mongodb es de 120k +.

Lo que estoy notando es que el uso de la CPU para el proceso de la base de datos alcanza el 84% y ha estado aumentando gradualmente desde que comencé la última ejecución de prueba.

Estaba leyendo sobre la configuración de índices, pero como estoy agregando documentos y no ejecuto consultas en su contra, no estoy seguro de si los índices ayudarán. Un pensamiento secundario que se me ocurrió es que update () podría estar haciendo una búsqueda ya que estoy usando $ push y que un índice podría ayudar con eso.

Qué debería mirar para evitar que MongoDB consuma cantidades cada vez mayores de CPU?

Respuestas a la pregunta(3)

Su respuesta a la pregunta