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.mzph.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; …