mongodb磁盤性能調優

最近在使用mongodb,mongodb在大部分情況下性能還是很好的,但當其內存不夠時就會導致性能急劇下降,但如何發現內存不夠了呢?
主要是可以通過看
a) vmstat 1 999 ,如果其中si,so數值較大說明內存是不夠了,需要加大內存
b) 執行mongostat 命令,如果其中faults值較大,那也說明內存上有問題,因爲它的失頁中斷髮生次數太多了導致有很多數據是要從硬盤中換入到內存中

在上述情況下就會有大量的數據需要從硬盤交換到內存中,導致硬盤性能跟不上,直接就導致整個mongodb性能低下。

用iostat -x查看,發現目前我們的系統iowait:37.33%,一般在25%以上就會有可能在硬盤上存在性能問題,await值:2069.10,說明應用磁盤隊列要等2秒以上,等待的時間太長了,說明硬盤上明顯存在性能問題。同時svctm值超過15,util值100%,這樣就說明目前時間就耗在硬盤上了。
await值的大小一般取決與svctm的值和I/O隊列長度以及I/O請求模式,如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠高於svctm的值,則表示I/O隊列等待太長,系統上運行的應用程序將變慢,此時可以通過更換更快的硬盤來解決問題。

類似的命令sar -d 2 3也能得到相關的數據

用hdparam -tT /dev/sda這樣的命令可以得到硬盤的速度報告
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章