Tôi muốn tích hợp MongoDB vào ứng dụng của mình. Tôi đã thử nghiệm bằng cách sử dụng công cụ Banchmarking Apache và sản xuất 1,00.000 yêu cầu đến với 1000 mức độ tương tranh. Sau khi một số thử nghiệm chèn bản ghi trong mongodb, tôi có thể tìm ra rằng nó được chèn khoảng 1000 rec/sec. Nhưng nó không đủ cho ứng dụng của tôi. Ai có thể đề nghị rằng cách tốt nhất để cải thiện perofmance là gì, để tôi có thể đạt được mục tiêu của 2000 rec/sec.Cải thiện hiệu suất trong Mongodb bằng trình điều khiển java
Mã của tôi là:
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();
Xem điều này có giúp ích: http://stackoverflow.com/questions/6783212/how-to-load-100-million-records-into-mongodb-with-scala-for-performance-testing/6786925#6786925 – DhruvPathak
Bạn có chắc chắn rằng bạn đang chạy vào một mongo áp đặt nút cổ chai? 1000 lần chèn mỗi giây cực kỳ chậm. Tôi có thể dễ dàng nhấn 20.000 lần chèn mỗi giây trên máy dev địa phương của tôi một mình. Đảm bảo bạn đang đo điểm chuẩn chính xác. Trên một máy chủ sản xuất lành mạnh, thông lượng chèn nên nhiều, tốt hơn nhiều. –
Tôi đang sử dụng máy chủ tomcate. Có cấu hình MongoOption nào không? Bạn có thể cho tôi biết số lượng kết nối cho mỗi máy chủ bạn đang cung cấp không? –