Yo quería integrar MongoDB en mi aplicación. He probado usando la herramienta de Banchmarking de Apache y produzco 1,00,000 solicitudes entrantes con un nivel de concurrencia de 1000. Después de una prueba de inserción de registros en mongodb, puedo deducir que está insertando alrededor de 1000 rec/seg. Pero no es suficiente para mi aplicación. ¿Alguien puede sugerir que cuál es la mejor manera de mejorar el rendimiento, para que pueda alcanzar el objetivo de 2000 rec/seg.Mejore el rendimiento en Mongodb usando el controlador java
Mi código es:
private static MongoOptions mo = new MongoOptions();
mo.connectionsPerHost = 20;
mo.threadsAllowedToBlockForConnectionMultiplier = 100;
private static Mongo m = new Mongo("127.0.0.1",mo);
private static DB db = m.getDB("mydb");
private static DBCollection coll = db.getCollection("mycoll");
DBObject dbObj = (DBObject) JSON.parse(msg);
db.requestStart();
coll.insert(dbObj);
dbObj.removeField("_id");
dbObj.put("val", "-10");
coll.insert(dbObj);
db.requestDone();
Ver si esto ayuda: http://stackoverflow.com/questions/6783212/how-to-load-100-million-records-into-mongodb-with-scala-for-performance-testing/6786925#6786925 – DhruvPathak
¿Estás seguro de que te encuentras con un cuello de botella impuesto mongo? 1000 inserciones por segundo es extremadamente lento. Puedo golpear fácilmente más de 20,000 inserciones por segundo en mi máquina de desarrollo local. Asegúrate de estar comparando correctamente. En un servidor de producción saludable, el rendimiento de la inserción debería ser mucho, mucho mejor. –
Estoy usando el servidor tomcate. ¿Hay alguna configuración de MongoOption? ¿Puede decirme cuántas conexiones por host está dando? –