今天接到一個查詢接口緩慢的bug
無從下手
那就從頭開始分析
1、查看代碼是否有問題
使用pprof,進行代碼佔用cpu、memory分析
2、查看數據庫狀態
mongostat 查看索引命中次數等參數
db.servereStatus() 查看數據庫狀態
3、查看超時的數據庫日誌
修改數據庫的配置,將耗時超過100ms的查詢打印出來
4、分析查詢語句
explain 來分析語句是否有優化空間
查看是否命中索引
limit 限制返回數量
5、使用索引
hint強制使用索引
6、使用Capped Collections
但是業務方面不允許
6、範式設計
這種的話,現階段是不可能了,只能等迭代了
7、使用ES
10、可以是設置mongo其他的參數來調整
cacheSizeGB
等
https://www.jianshu.com/p/116bc7d87bef
https://www.jianshu.com/p/b77a33fbe824
https://blog.csdn.net/happy_jijiawei/article/details/53737858
https://www.jb51.net/article/80062.htm 索引建立規則
https://www.cnblogs.com/swordfall/p/10427150.html
https://www.cnblogs.com/leoyang63/articles/12023731.html
20、併發測試遇到的問題
many open file
https://www.cnblogs.com/djwhome/p/9549201.html
Cannot assign requested address
https://www.cnblogs.com/tongbk/p/10442595.html