我用mongoDB管理股票行情数据,目前已保存行情数据约120GB,在一个Quote集合中包含ticks(448903576条记录)和bids(622612318条记录)两个数据表,两个数据表都建立有日期和代码索引。使用的是mongoDB 3.0.7版64位版本。
最近发现写入数据时会非常慢,经常有时写入一条记录要10多秒,正常时写入一条记录是100ms左右。朋友用的服务器远不如我的服务器配置,而且同样一个mongoDB表数据记录超过1亿条,依然能快速写入,不知为何。
摘取了部分log如下,能帮我分析一下原因吗?
2015-11-01T21:45:47.444+0800 I WRITE [conn31] insert quote.bids query: { _id: ObjectId('563617890bda790fc8b98d17'), code: "000893", price: 3.552713678800501e-015, volume: 2, flag: "00C", dt: new Date(1446212410000) } ninserted:1 keyUpdates:0 writeConflicts:0 numYields:0 locks:{ Global: { acquireCount: { r: 6, w: 6 } }, MMAPV1Journal: { acquireCount: { w: 702 }, acquireWaitCount: { w: 1 }, timeAcquiringMicros: { w: 109947 } }, Database: { acquireCount: { w: 6 } }, Collection: { acquireCount: { W: 6 } } } 110ms
2015-11-01T21:45:47.456+0800 I COMMAND [conn31] command quote.$cmd command: insert { insert: "bids", ordered: true, documents: 1000 } keyUpdates:0 writeConflicts:0 numYields:0 reslen:40 locks:{ Global: { acquireCount: { r: 9, w: 9 } }, MMAPV1Journal: { acquireCount: { w: 1009 }, acquireWaitCount: { w: 1 }, timeAcquiringMicros: { w: 109947 } }, Database: { acquireCount: { w: 9 } }, Collection: { acquireCount: { W: 9 } } } 144ms
2015-11-01T21:46:08.731+0800 I COMMAND [conn31] command quote.$cmd command: insert { insert: "bids", ordered: true, documents: 1000 } keyUpdates:0 writeConflicts:0 numYields:0 reslen:40 locks:{ Global: { acquireCount: { r: 9, w: 9 } }, MMAPV1Journal: { acquireCount: { w: 1009 }, acquireWaitCount: { w: 1 }, timeAcquiringMicros: { w: 69102 } }, Database: { acquireCount: { w: 9 } }, Collection: { acquireCount: { W: 9 } } } 104ms
2015-11-01T21:46:20.071+0800 I WRITE [conn31] insert quote.bids query: { _id: ObjectId('563617ab0bda790fc8bdf667'), code: "000916", price: 5.739999999999998, volume: 69, flag: "00B", dt: new Date(1446212949000) } ninserted:1 keyUpdates:0 writeConflicts:0 numYields:0 locks:{ Global: { acquireCount: { r: 4, w: 4 } }, MMAPV1Journal: { acquireCount: { w: 415 }, acquireWaitCount: { w: 1 }, timeAcquiringMicros: { w: 103010 } }, Database: { acquireCount: { w: 4 } }, Collection: { acquireCount: { W: 4 } } } 103ms
2015-11-01T21:46:20.093+0800 I COMMAND [conn31] command quote.$cmd command: insert { insert: "bids", ordered: true, documents: 1000 } keyUpdates:0 writeConflicts:0 numYields:0 reslen:40 locks:{ Global: { acquireCount: { r: 9, w: 9 } }, MMAPV1Journal: { acquireCount: { w: 1009 }, acquireWaitCount: { w: 1 }, timeAcquiringMicros: { w: 103010 } }, Database: { acquireCount: { w: 9 } }, Collection: { acquireCount: { W: 9 } } } 137ms
2015-11-01T21:46:26.793+0800 I COMMAND [conn31] command quote.$cmd command: insert { insert: "bids", ordered: true, documents: 1000 } keyUpdates:0 writeConflicts:0 numYields:0 reslen:40 locks:{ Global: { acquireCount: { r: 9, w: 9 } }, MMAPV1Journal: { acquireCount: { w: 1009 }, acquireWaitCount: { w: 1 }, timeAcquiringMicros: { w: 71011 } }, Database: { acquireCount: { w: 9 } }, Collection: { acquireCount: { W: 9 } } } 101ms
2015-11-01T21:46:36.054+0800 I COMMAND [conn31] command quote.$cmd command: insert { insert: "bids", ordered: true, documents: 1000 } keyUpdates:0 writeConflicts:0 numYields:0 reslen:40 locks:{ Global: { acquireCount: { r: 9, w: 9 } }, MMAPV1Journal: { acquireCount: { w: 1009 }, acquireWaitCount: { w: 1 }, timeAcquiringMicros: { w: 73748 } }, Database: { acquireCount: { w: 9 } }, Collection: { acquireCount: { W: 9 } } } 113ms
2015-11-01T21:46:51.225+0800 I STORAGE [DataFileSync] flushing mmaps took 63267ms for 12 files
*****以下是最近异常的log记录*****
2015-11-29T08:29:59.714+0800 I WRITE [conn65] insert quote.ticks query: { _id: ObjectId('565a46d50bda79121c058f73'), code: "603066", price: 58.43, volume: 1.0, dt: new Date(1448631616000), side: "S" } ninserted:1 keyUpdates:0 writeConflicts:0 numYields:0 locks:{ Global: { acquireCount: { r: 115, w: 115 } }, MMAPV1Journal: { acquireCount: { w: 527 }, acquireWaitCount: { w: 12 }, timeAcquiringMicros: { w: 122008 } }, Database: { acquireCount: { w: 115 } }, Collection: { acquireCount: { W: 115 }, acquireWaitCount: { W: 115 }, timeAcquiringMicros: { W: 2526086 } } } 140ms
2015-11-29T08:29:59.714+0800 I WRITE [conn63] insert quote.ticks query: { _id: ObjectId('565a46f70bda791154306e11'), code: "600395", price: 8.050000000000001, volume: 78.0, dt: new Date(1448617010000), side: "S" } ninserted:1 keyUpdates:0 writeConflicts:0 numYields:0 locks:{ Global: { acquireCount: { r: 409, w: 409 } }, MMAPV1Journal: { acquireCount: { w: 1761 }, acquireWaitCount: { w: 25 }, timeAcquiringMicros: { w: 115750 } }, Database: { acquireCount: { w: 409 } }, Collection: { acquireCount: { W: 409 }, acquireWaitCount: { W: 409 }, timeAcquiringMicros: { W: 13637358 } } } 141ms
2015-11-29T08:29:59.714+0800 I WRITE [conn67] insert quote.ticks query: { _id: ObjectId('565a46e90bda79179838a80e'), code: "000790", price: 15.19, volume: 2.0, dt: new Date(1448619704000), side: "S" } ninserted:1 keyUpdates:0 writeConflicts:0 numYields:0 locks:{ Global: { acquireCount: { r: 224, w: 224 } }, MMAPV1Journal: { acquireCount: { w: 1255 }, acquireWaitCount: { w: 20 }, timeAcquiringMicros: { w: 50202 } }, Database: { acquireCount: { w: 224 } }, Collection: { acquireCount: { W: 224 }, acquireWaitCount: { W: 224 }, timeAcquiringMicros: { W: 5196956 } } } 141ms
2015-11-29T08:30:00.101+0800 I COMMAND [conn63] command quote.$cmd command: insert { insert: "ticks", ordered: true, documents: 1000 } keyUpdates:0 writeConflicts:0 numYields:0 reslen:40 locks:{ Global: { acquireCount: { r: 421, w: 421 } }, MMAPV1Journal: { acquireCount: { w: 1842 }, acquireWaitCount: { w: 27 }, timeAcquiringMicros: { w: 133006 } }, Database: { acquireCount: { w: 421 } }, Collection: { acquireCount: { W: 421 }, acquireWaitCount: { W: 421 }, timeAcquiringMicros: { W: 13865934 } } } 16363ms
2015-11-29T08:30:01.036+0800 I WRITE [conn65] insert quote.ticks query: { _id: ObjectId('565a46d50bda79121c058fdf'), code: "603066", price: 58.7, volume: 5.0, dt: new Date(1448631877000), side: "S" } ninserted:1 keyUpdates:0 writeConflicts:0 numYields:0 locks:{ Global: { acquireCount: { r: 153, w: 153 } }, MMAPV1Journal: { acquireCount: { w: 711 }, acquireWaitCount: { w: 16 }, timeAcquiringMicros: { w: 123164 } }, Database: { acquireCount: { w: 153 } }, Collection: { acquireCount: { W: 153 }, acquireWaitCount: { W: 153 }, timeAcquiringMicros: { W: 3215329 } } } 108ms
你说的异常操作情况也没有计时也是100+ms啊,是不是其他部分出现问题了