1. 程式人生 > >Mongodb 佔用99%CPU並且查詢速度很慢原因查詢筆記。

Mongodb 佔用99%CPU並且查詢速度很慢原因查詢筆記。

最近一直在用Mongodb,因為只是小專案,所以瞭解的不是很深入,並且只期望夠用就沒有進行深入研究。

但是,最近把Mongodb遷移了機器之後,發現特別慢,而且Mongodb 一直佔據99%的CPU, 於是就開始了下面的糾結旅程。


我檢視Mongodb的log,發現在Mongodb啟動時,log確實有記錄關於NUMA的warn, 如下。


但是當我按要求加上numactl重啟資料庫後,發現情況並未改變。


後來我刪掉Mongodb.lock檔案並進行修復, Mongodb --repair。  但修復之後,資料庫速度並未明顯提升,  Mongodb依然佔據超高CPU。


但是我停掉機器上的redis後,發現情況依然沒有改觀!

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

然後我重新看了《Mongodb權威指南》, 然後想起,因為程式有將近40個執行緒一直在不停的查詢資料庫並插入, 而我竟然沒有在資料庫中建索引, so。。。。。。

資料庫不停翻書,翻書,翻書。。。。。。。。。。 然後抽插,抽查。。。。。。

然後我建立索引:


Mongodb的CPU使用率瞬間降下來了,並且速度超快,抽查也順利起來了。