MongoDB在Linux下常用优化设置
以下是一些MongoDB推薦的常用優(yōu)化設置。在生產(chǎn)環(huán)境下選取合適的參數(shù)值,例如預讀值和默認文件描述符數(shù)目等,會對系統(tǒng)性能有很大的影響。
1、關閉數(shù)據(jù)庫文件的 atime
禁止系統(tǒng)對文件的訪問時間更新會有效提高文件讀取的性能。這個可以通過在 /etc/fstab 文件中增加 noatime 參數(shù)來實現(xiàn)。例如:
/dev/xvdb /data ext4 noatime 0 0
修改完文件后重新 mount就可以:
# mount -o remount /data
2、提高默認文件描述符和進程/線程數(shù)限制
Linux默認的文件描述符數(shù)和最大進程數(shù)對于MongoDB來說一般會太低。建議把這個數(shù)值設為64000。因為MongoDB服務器對每一個數(shù)據(jù)庫文件以及每一個客戶端連接都需要用到一個文件描述符。如果這個數(shù)字太小的話在大規(guī)模并發(fā)操作情況下可能會出錯或無法響應。 你可以通過以下命令來修改這些值:
ulimit -n 64000
ulimit -u 64000
3、禁止 NUMA
在一個使用NUMA技術的多處理器Linux 系統(tǒng)上,你應該禁止NUMA的使用。MongoDB在NUMA環(huán)境下運行性能有時候會可能變慢,特別是在進程負載很高的情況下。
4、預讀值(readahead)設置
預讀值是文件操作系統(tǒng)的一個優(yōu)化手段,大致就是在程序請求讀取一個頁面的時候,文件系統(tǒng)會同時讀取下面的幾個頁面并返回。這原因是因為很多時候IO最費時的磁盤尋道。通過預讀,系統(tǒng)可以提前把緊接著的數(shù)據(jù)同時返回。假設程序是在做一個連續(xù)讀的操作,那么這樣可以節(jié)省很多磁盤尋道時間。
MongoDB很多時候會做隨機訪問。對于隨機訪問,這個預讀值應該設置的較小為好.一般來說32是一個不錯的選擇。
你可以使用下述命令來顯示當前系統(tǒng)的預讀值:
sudo blockdev –report
要更改預讀值,可以用以下命令:sudo blockdev –setra 32 /dev/xvdb
換成合適的存儲設備。5、使用NTP時間服務器
在使用MongoDB復制集或者分片集群的時候,注意一定要使用NTP時間服務器。這樣可以保證MongoDB集群成原則之間正確同步。
來源:?http://www.mongoing.com/tj/linux-tuning來自為知筆記(Wiz)
轉載于:https://www.cnblogs.com/xuegqcto/p/10531377.html
總結
以上是生活随笔為你收集整理的MongoDB在Linux下常用优化设置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到大枣是什么意思
- 下一篇: 梦到狼扑向自己是什么意思