【发布时间】:2011-10-14 22:38:56
【问题描述】:
我想将 MongoDB 集成到我的应用程序中。我已经使用 Apache Banchmarking 工具进行了测试,并产生了 1,00,000 个具有 1000 个并发级别的传入请求。在对 mongodb 中的记录插入进行一些测试之后,我可以确定它的插入速度约为 1000 记录/秒。但这对我的应用程序来说还不够。任何人都可以建议提高性能的最佳方法是什么,以便我可以实现 2000 记录/秒的目标。
我的代码是:
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();
【问题讨论】:
-
您确定遇到了 mongo 强加的瓶颈吗?每秒 1000 次插入非常慢。仅在本地开发机器上,我就可以轻松地达到每秒 20,000 多个插入。确保您正确地进行基准测试。在健康的生产服务器上,插入吞吐量应该会好得多。
-
我正在使用 tomcate 服务器。 MongoOption 有什么配置吗?你能告诉我你给每个主机多少个连接吗?