【五】MongoDB管理之生產環境說明

來源:互聯網
上載者:User

標籤:leave   ora   分區   ram   儲存引擎   page   mongod   ati   進程   

下面詳細說明影響mongodb的系統配置,尤其在生產環境上。

1、生產環境推薦的平台

  • Amazon Linux
  • Debian 7.1
  • Red Hat / CentOS 6.2+
  • SLES 11+
  • Ubuntu LTS 12.04
  • Ubuntu LTS 14.04
  • Windows Server 2012 & 2012 R2

推薦使用官方最新的64位發行版本。

2、網路設定

1)使用可信任的網路環境

MongoDB總是運行在可信任的網路環境中,通過網路規則設定避免所有不知來曆的機器訪問。MongoDB應該部署在獨立的環境中,這個環境僅僅能被應用server,監控服務,mongodb組件等訪問。

2)禁用HTTP介面

3、串連池管理

為了避免串連超載,確保用戶端維護合理的串連池大小,調整串連池的大小以適應具體案例,一般而言,開始串連池大小設定為資料庫請求並發數的110-115%。

4、硬體設定說明

MongoDB對於伺服器的硬體有一定的需求和限制。

1)分配充足的CPU和RAM

  • 對於MMAPv1儲存引擎:由於它本身的並行存取模型設計,MMAPv1並不需要更多的CPU核心,所以,增加CPU核心在一定程度上有所協助但是效能提升並不顯著。增加RAM能夠協助減少發生分頁錯誤頻率。
  • 對於WiredTiger儲存引擎:它是為多線程設計,能夠利用很多CPU核心,所以,活躍線程總數對應於CPU的數量能夠提升效能。隨著活躍並行作業數量增加到系統CPU個數,系統輸送量增加;隨著活躍並行作業數超過系統CPU的個數闕值,系統輸送量下降;

這個系統闕值數依賴於你的應用程式,你可以通過實驗測量系統輸送量來決定最優的活躍並發數。mongostat工具的輸出能夠提供活躍並發的讀寫資料。在v3.2版本中,預設使用WiredTiger儲存引擎,MongoDB可以利用作業系統檔案系統cache和WiredTiger引擎的cache。WiredTiger v3.2 cache預設設定為1GB或者記憶體的60%,取其中大的。當然,我們可以自己設定:一般而言,伺服器實體記憶體10G以下的,比較合理的設定值是小於等於3G;對於實體記憶體大於10G的,可以大於3G。在v3.0版本中,cache預設為1G或實體記憶體的一半,取其中大的。

注意:storage.wiredTiger.engineConfig.cacheSizeGB僅僅限制WiredTiger cache大小,不會限制mongd服務佔用記憶體的總量。WiredTiger cache僅僅是mongodb使用記憶體的一個組件,除此之外,mongodb還可以利用作業系統中檔案系統cache。

如果一台節點上只有一個mongodb執行個體,那麼建議使用預設的WiredTiger cache即可;如果一台節點上有多個執行個體,那麼你需要考慮減少WriedTiger cache的大小以滿足其他執行個體的需要。

2)使用SSDs(固態硬碟)

MongoDB在使用SATA SSDs上有很好的性價比。如果經濟條件允許,建議使用SSDs。SSDs在隨機IO操作上的效能表現完全適應於MMAPv1儲存引擎的更新模型。通過使用SSDs和增加記憶體能夠提升I/O的輸送量

3)NUMA設定

MongoDB運行在NUMA系統上,能夠導致一些操作問題,如間斷性效能低下、高系統進程佔用等。所以需要對記憶體交叉策略進行配置以使主機是non-NUMA狀態,MongoDB在啟動時就會對系統的NUMA進行檢查,如果NUMA配置降低效能了就會進行警告提示。

  • windows系統上NUMA配置

記憶體策略通過BIOS配置,具體請參考系統資料

  • liunx系統上NUMA配置
numactl --interleave=all <path>   #path是mongod路徑echo 0 > /proc/sys/vm/zone_reclaim_mode

4)磁碟儲存系統

  • swap分配:分配系統swap空間能夠避免記憶體爭用、預防系統出現OOM殺死mongod進程等問題。對於MMAPv1儲存引擎,mongodb不會在swap空間中儲存資料。(windows環境另算);對於WiredTiger儲存引擎,mongodb可能會在swap中儲存資料。
  • RAID:建議使用raid10,其他不建議。
  • 檔案系統類型選擇:對於MMAPv1儲存引擎,建議xfs或ext4,如果可能,優先選擇xfs。對於WiredTiger儲存引擎,強烈推薦使用XFS檔案系統,因為能夠避免使用ext4產生的效能問題。一般而言如果你用xfs檔案系統,作業系統核心版本應該在2.6.25及以後;如果使用ext4檔案系統,建議核心版本2.6.23及以後。

5、其他建議配置(liunx)

  • 對於儲存資料庫檔案的磁碟卷,建議關閉atime
vim /etc/fstab#在儲存資料庫檔案的磁碟卷裝置上default後面加上noatime,nodiratime UUID=98a683e4-ab44-4fe4-85de-7808ee5f167d /data                   xfs     defaults,noatime,nodiratime        1 2
  • 設定unlimit值大於20000
  • 禁用Transparent Huge Pages
  • 禁用NUMA
  • 設定SELinux on Red Hat
  • 如果使用分區叢集,別忘了使用NTP同步主機的時間,這個是特別重要的。

 

【五】MongoDB管理之生產環境說明

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.