Mongodb 佔用99%CPU並且查詢速度很慢原因查詢筆記。
阿新 • • 發佈:2019-01-08
最近一直在用Mongodb,因為只是小專案,所以瞭解的不是很深入,並且只期望夠用就沒有進行深入研究。
但是,最近把Mongodb遷移了機器之後,發現特別慢,而且Mongodb 一直佔據99%的CPU, 於是就開始了下面的糾結旅程。
我檢視Mongodb的log,發現在Mongodb啟動時,log確實有記錄關於NUMA的warn, 如下。
但是當我按要求加上numactl重啟資料庫後,發現情況並未改變。
後來我刪掉Mongodb.lock檔案並進行修復, Mongodb --repair。 但修復之後,資料庫速度並未明顯提升, Mongodb依然佔據超高CPU。
但是我停掉機器上的redis後,發現情況依然沒有改觀!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
然後我重新看了《Mongodb權威指南》, 然後想起,因為程式有將近40個執行緒一直在不停的查詢資料庫並插入, 而我竟然沒有在資料庫中建索引, so。。。。。。
資料庫不停翻書,翻書,翻書。。。。。。。。。。 然後抽插,抽查。。。。。。
然後我建立索引:
Mongodb的CPU使用率瞬間降下來了,並且速度超快,抽查也順利起來了。