MongoDB在Linux下常用優化設置

MongoDB在Linux下常用優化設置

以下是一些MongoDB推薦的常用優化設置。在生產環境下選取合適的參數值,例如預讀值和默認文件描述符數目等,會對系統性能有很大的影響。

1、關閉數據庫文件的 atime

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

/dev/xvdb /data ext4 noatime 0 0

修改完文件后重新 mount就可以:

# mount -o remount /data

2、提高默認文件描述符和進程/線程數限制

Linux默認的文件描述符數和最大進程數對于MongoDB來說一般會太低。建議把這個數值設為64000。因為MongoDB服務器對每一個數據庫文件以及每一個客戶端連接都需要用到一個文件描述符。如果這個數字太小的話在大規模并發操作情況下可能會出錯或無法響應。 你可以通過以下命令來修改這些值:

ulimit -n 64000
ulimit -u 64000

3、禁止 NUMA

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

4、預讀值(readahead)設置

預讀值是文件操作系統的一個優化手段,大致就是在程序請求讀取一個頁面的時候,文件系統會同時讀取下面的幾個頁面并返回。這原因是因為很多時候IO最費時的磁盤尋道。通過預讀,系統可以提前把緊接著的數據同時返回。假設程序是在做一個連續讀的操作,那么這樣可以節省很多磁盤尋道時間。

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

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

sudo blockdev –report

533377-20190314165302124-172555549.png
要更改預讀值,可以用以下命令:

sudo blockdev –setra 32 /dev/xvdb

533377-20190314165302878-450662688.png
換成合適的存儲設備。
5、使用NTP時間服務器

在使用MongoDB復制集或者分片集群的時候,注意一定要使用NTP時間服務器。這樣可以保證MongoDB集群成原則之間正確同步。

來源:?http://www.mongoing.com/tj/linux-tuning



來自為知筆記(Wiz)


轉載于:https://www.cnblogs.com/xuegqcto/p/10531377.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394805.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394805.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394805.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iOS常用第三方庫大全,史上最全第三方庫收集

下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件。SVPullToRefresh – 下拉刷新控件。MJRefresh – 僅需一行代碼就可以為UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定義上下拉刷新的文字說明。具體使用看“使用方法”。 (國人寫…

ipconfig沒有顯示ip_TCP/IP 協議修復網絡問題

nternet 在 TCP/IP 協議上工作,如果 TCP/IP 協議堆棧在 Windows 或任何其他操作系統(例如 Linux 或 MacOS)中無法正常工作,則您的 Internet 連接會出現問題。解決 Internet 問題的最佳方法是重置 TCP/IP 堆棧設置。如何在 Windows 中重置 TCP/IP 堆棧&am…

mysql卸載

先執行mysql安裝程序,點擊移除,然后再刪除對應的安裝路徑,必要的時候還要刪除注冊表信息。轉載于:https://www.cnblogs.com/772933011qq/p/6007752.html

mysql-linux64,Linux64下mysql安裝和開辟

1.1地址:http://www.mysql.com/downloads/mysql/5.5.html#downloads版本:5.1.68平臺:linux generalGeneric Linux (glibc 2.3) (x86, 64-bit), RPM Package版本:MySQL Server(MySQL-server-5.1.…

mysql 內置功能 存儲過程 目錄

mysql 內置功能 存儲過程介紹mysql 內置功能 存儲過程 創建無參存儲過程mysql 內置功能 存儲過程 創建有參存儲過程mysql 內置功能 存儲過程 刪除存儲過程轉載于:https://www.cnblogs.com/mingerlcm/p/10533021.html

簡化C語言文法

程序 → 外部聲明|程序 外部聲明 外部聲明 → 定義函數|定義 函數定義 → 類型標識符 聲明部分語句 類型標識符 → 空類型|字符型|整型|浮點型 聲明部分語句 → 指針 直接聲明|直接聲明 指針 → * |* 指針 直接聲明 → 標識符 | 直接聲明[ ] | 直接聲明[常數表達式] | 標識符&a…

elixir 規格_Elixir:一種高畫質的編程語言

elixir 規格by CityBase按CityBase Elixir:一種高畫質的編程語言 (Elixir: A Big-Picture Programming Language) Elixir使程序員的工作更好,并且使他們的工作更好 (Elixir makes programmers better at their work, and it makes their work better) A…

python截圖識別文字_用百度ocr+微信截圖實現文字識別

作用:將圖片中的文字識別出來 一、調用微信截圖dll控件 將微信截圖插件復制到項目文件,使用ctypes加載(膠水語言就是給力) def capture(): try: dll ctypes.cdll.LoadLibrary(PrScrn.dll) except Exception: print("Dll loa…

MySQL啟動很慢的原因

我們在啟動MySQL的時候,常常會遇到的是, 當執行啟動命令后,它會"Start MySQL ....." 一直不停的執行,也不中斷,也不成功 這里會出現此現象的原因有以下三條: 1. 配置文件中的InnoDBuffer數大于物…

linux線程出錯,在線程應用程序(linux,pthreads)中讀取文件大小時出錯

我試圖從Linux中的文件夾中讀取所有文件和目錄,其線程為 獲取最大文件大小&當前目錄和當前目錄樹下的名稱。在線程應用程序(linux,pthreads)中讀取文件大小時出錯主線程掃描基本目錄查找文件,當找到它的目錄時,會生成一個新線…

【用jQuery來判斷瀏覽器的類型】及【javascript獲取用戶ip地址】

用jQuery來判斷瀏覽器的類型,主要是使用$.browser這個工具類,使用方法: $.browser.[瀏覽器關鍵字] //谷歌瀏覽器、360瀏覽器等其他一些瀏覽器,沒有專門的判斷 function appInfo() {var bro $.browser;var binfo "";if (bro.msie) {binfo "Micr…

python函數學習1

函數1 (1)定義: def 函數名(參數列表)函數體 (2)參數傳遞: 在python中,一切都是對象,類型也屬于對象,變量是沒有類型的。 a [1,2,3] a "he…

kafka應用于區塊鏈_Apache Kafka的區塊鏈實驗

kafka應用于區塊鏈by Luc Russell盧克羅素(Luc Russell) Apache Kafka的區塊鏈實驗 (A blockchain experiment with Apache Kafka) Blockchain technology and Apache Kafka share characteristics which suggest a natural affinity. For instance, both share the concept o…

pythonfor循環100次_以寫代學: python for循環 range函數 xrange函數

腳本一: #!/usr/bin/env python # coding: utf8 sum100 0 for i in range(101): sum100 i #(1)range是一個可以取值的函數,上邊這個取的是0-100,并不包含101 #(2)也可以指定,比如r…

iis下php 500錯誤

很不想用iis,然而客戶不想增加機器,只好按客戶的意思了。可是沒想到發送短信以在本地 機器上是好的,在iis下直接500。 ??一開始以為是防火墻問題,后來檢查了一下沒有,再后來換了一個短信接口,就莫名其妙好…

linux mv 遞歸拷貝,奇技淫巧 - 給Linux中的cp和mv命令中添加進度條的高級拷貝

GNU cp和GNU mv命令用于在GNU/Linux操作系統中復制和移動文件和目錄。這兩個命令缺少的一個特性是它們不顯示任何進度條。如果復制一個大文件或目錄,您就不知道完成復制過程需要多長時間,也不知道復制的數據所占的百分比。還有您將看不到當前正在復制哪個…

webgl 著色器_如何在WebAssembly中使用WebGL著色器

webgl 著色器by Dan Ruta通過Dan Ruta 在WebAssembly中使用WebGL著色器 (Using WebGL shaders in WebAssembly) WebAssembly is blazing fast for number crunching, game engines, and many other things, but nothing can quite compare to the extreme parallelization of …

【洛谷P1966】火柴排隊

兩列排序后將編號一一對應 歸并排序求逆序對 &#xff08;每一次交換就去掉一個逆序對&#xff09; 1 #include<cstdio>2 #include<cstring>3 #include<algorithm>4 #define ll long long5 using namespace std;6 const int N100100;7 const ll P99999997;8 …

python字符串補空格輸出_Python去除空格,Python中常見字符串去除空格的方法總結...

今天小編就為大家分享一篇關于Python去除字符串前后空格的幾種方法&#xff0c;小編覺得內容挺不錯的&#xff0c;現在分享給大家&#xff0c;具有很好的參考價值&#xff0c;需要的朋友一起跟隨小編來看看吧&#xff1a; Python去除空格方法一&#xff1a; strip()方法&#x…

Alan Walker MV 合輯01 by defender

Alan Walker MV合輯 出來啦&#xff01; 百度網盤下載地址&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/10WSool70XBe_8tJOae8V-w 提取碼&#xff1a;uckq 地址查看Microsoft Onedrive Download Address:  BE DELETED Google Drive Download Address&#xff1a; …