MongoDB在Linux下常用最佳化設定

來源:互聯網
上載者:User

MongoDB在Linux下常用最佳化設定

以下是一些MongoDB推薦的常用最佳化設定。在生產環境下選取合適的參數值,例如預讀值和預設檔案描述符數目等,會對系統效能有很大的影響。

** 關閉資料庫檔案的 atime

禁止系統對檔案的訪問時間更新會有效提高檔案讀取的效能。這個可以通過在 /etc/fstab 檔案中增加 noatime 參數來實現。例如:

/dev/xvdb /data ext4 noatime 0 0

修改完檔案後重新 mount就可以:

# mount -o remount /data

** 提高預設檔案描述符和進程/線程數限制

Linux預設的檔案描述符數和最大進程數對於MongoDB來說一般會太低。建議把這個數值設為64000。因為MongoDB伺服器對每一個資料庫檔案以及每一個用戶端串連都需要用到一個檔案描述符。如果這個數字太小的話在大規模並行作業情況下可能會出錯或無法響應。 你可以通過以下命令來修改這些值:

ulimit -n 64000
 ulimit -u 64000

** 禁止 NUMA

在一個使用NUMA技術的多處理器Linux 系統上,你應該禁止NUMA的使用。MongoDB在NUMA環境下運行效能有時候會可能變慢,特別是在進程負載很高的情況下。

** 預讀值(readahead)設定

預讀值是檔案作業系統的一個最佳化手段,大致就是在程式請求讀取一個頁面的時候,檔案系統會同時讀取下面的幾個頁面並返回。這原因是因為很多時候IO最費時的磁碟尋道。通過預讀,系統可以提前把緊接著的資料同時返回。假設程式是在做一個連續讀的操作,那麼這樣可以節省很多磁碟尋道時間。

MongoDB很多時候會做隨機訪問。對於隨機訪問,這個預讀值應該設定的較小為好.一般來說32是一個不錯的選擇。

你可以使用下述命令來顯示當前系統的預讀值:

sudo blockdev –report

要更改預讀值,可以用以下命令:

sudo blockdev –setra 32

把<device> 換成合適的存放裝置。

** 使用NTP時間伺服器

在使用MongoDB複製集或者分區叢集的時候,注意一定要使用NTP時間伺服器。這樣可以保證MongoDB叢集成原則之間正確同步。

MongoDB 3.0 正式版發布下載 

CentOS編譯安裝MongoDB

CentOS 編譯安裝 MongoDB與mongoDB的php擴充

CentOS 6 使用 yum 安裝MongoDB及伺服器端配置

Ubuntu 13.04下安裝MongoDB2.4.3

MongoDB入門必讀(概念與實戰並重)

Ubunu 14.04下MongoDB的安裝指南

《MongoDB 權威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]

Nagios監控MongoDB分區叢集服務實戰

基於CentOS 6.5作業系統搭建MongoDB服務

MongoDB 的詳細介紹:請點這裡
MongoDB 的:請點這裡

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.