2013-05-01 36 views
1

我注意到有人問這個問題在這裏(slow inserts into a capped collection?),但沒有任何最好的答案。寫數據加蓋收集太慢

該日誌是我的capped集合插入操作。

Tue Apr 30 13:12:19.172 [conn870] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:53 872ms 
Tue Apr 30 13:12:19.175 [conn1093] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:70 1792ms 
Tue Apr 30 13:12:19.182 [conn843] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:245206 256ms 
Tue Apr 30 13:12:19.690 [conn886] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:64 1392ms 
Tue Apr 30 13:12:19.691 [conn1087] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:55 512ms 
Tue Apr 30 13:12:19.692 [conn922] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:63 1874ms 
Tue Apr 30 13:12:19.693 [conn937] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:503479 511ms 
Tue Apr 30 13:12:19.694 [conn879] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:63 1776ms 
Tue Apr 30 13:12:20.475 [conn879] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:82 779ms 
........ 

我運行,將自動記錄一個操作日誌中的應用程序,這意味着有大量的日誌需要編寫來自客戶端的請求爲DB。下面

> db.requestLogs.stats(); 
{ 
    "ns" : "shopbot_slurp.requestLogs", 
    "count" : 1105917, 
    "size" : 192024340, 
    "avgObjSize" : 173.63359094760276, 
    "storageSize" : 209719296, 
    "numExtents" : 1, 
    "nindexes" : 0, 
    "lastExtentSize" : 209719296, 
    "paddingFactor" : 1, 
    "systemFlags" : 0, 
    "userFlags" : 0, 
    "totalIndexSize" : 0, 
    "indexSizes" : { 

    }, 
    "capped" : true, 
    "max" : NumberLong("9223372036854775807"), 
    "ok" : 1 
} 


>db.system.namespaces.find() 
{ "name" : "shopbot_slurp.requestLogs", "options" : 
{ "create" : "requestLogs","capped" : true, "size" : 209715200, "autoIndexId" : false } } 

的是我的插入代碼:

var doc = new BsonDocument() 
     { 
      {"url",url}, 
      {"verb",verbs}, 
      {"action",action}, 
      {"time",DateTime.Now} 
     };     
var collection = this._database.GetCollection(RequestLogCollectionName); 
collection.Insert(doc, WriteConcern.Unacknowledged); 

的MongoDB:2.4.2 MongoDB的驅動程序:c# 1.7

感謝一些建議。

回答