[英]Improve performance in Mongodb using java driver
我想在我的應用程序中集成MongoDB。 我已經使用Apache Banchmarking工具進行了測試,並生成了1000個並發級別的1,00,000個傳入請求。 在mongodb中插入記錄的一些測試之后,我可以發現它插入大約1000 rec / sec。 但這對我的申請來說還不夠。 任何人都可以建議提高性能的最佳方法是什么,這樣我才能實現2000 rec / sec的目標。
我的代碼是:
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();
有1000個客戶端(我認為你的意思是並發級別1000)一次點擊數據庫對我來說聽起來很高。 如果它在1-2核系統上運行,那么您的盒子可能會花費大量時間在不同的進程之間切換。 DB和基准測試工具是否在同一個盒子上運行? 這也會增加進程切換所花費的時間。
您可以嘗試將客戶端放在一個多核盒上,將DB放在另一個上。
或嘗試運行較少的模擬客戶端可能10-20。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.