Mongodb 启动警告

Mongodb在启动时会发出若干的警告,今天好好看了下网上大牛们的讨论,发现这些警告很可能会是以后问题的导火索。遂,一个个慢慢解决。

在没有完全进行任何处理的情况下,启动mongo,提示如下:

Server has startup warnings:

2016-09-17T18:28:05.646+0800 I CONTROL  [initandlisten]

2016-09-17T18:28:05.646+0800 I CONTROL  [initandlisten] ** WARNING: Insecure configuration, access control is not enabled and no --bind_ip has been specified.

2016-09-17T18:28:05.646+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted,

2016-09-17T18:28:05.646+0800 I CONTROL  [initandlisten] **          and the server listens on all available network interfaces.

2016-09-17T18:28:05.646+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.

2016-09-17T18:28:05.646+0800 I CONTROL  [initandlisten]

2016-09-17T18:28:05.647+0800 I CONTROL  [initandlisten]

2016-09-17T18:28:05.647+0800 I CONTROL  [initandlisten] ** WARNING: You are running on a NUMA machine.

2016-09-17T18:28:05.647+0800 I CONTROL  [initandlisten] **          We suggest launching mongod like this to avoid performance problems:

2016-09-17T18:28:05.647+0800 I CONTROL  [initandlisten] **              numactl --interleave=all mongod [other options]

2016-09-17T18:28:05.647+0800 I CONTROL  [initandlisten]

2016-09-17T18:28:05.647+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.

2016-09-17T18:28:05.647+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'

2016-09-17T18:28:05.647+0800 I CONTROL  [initandlisten]

2016-09-17T18:28:05.647+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.

2016-09-17T18:28:05.647+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'

2016-09-17T18:28:05.647+0800 I CONTROL  [initandlisten]

问题如下:

1、  没有使用-bind ip

2、  读写没有限制

3、  服务器监听所有网络中的可用端口

4、  使用root用户

5、  建议使用 numactl –interleave选项

6、  建议关闭大页面内存

从后往前走,解决大页面内存。

1、  hugepage

消耗大内存,关闭方法:

echo never >/sys/kernel/mm/redhat_transparent_hugepage/enabled

echo never>/sys/kernel/mm/transparent_hugepage/defrag

查看配置后的

cat /sys/kernel/mm/transparent_hugepage/enabled

always madvise [never]

已经是never

那么大内存是什么?没有swap,块表的负载减轻。但是很多配置都需要手动的配置,在mongodb中非常的不推荐。占用的内存过大。有一个非常值得注意的地方,在3.0以上cache的size是默认的一半的系统内存。一旦你尝试在一台电脑中运行两个shard的时候,内存分分钟会爆了。

2.numactl –interleave

首先了解NUMA,它是一种多核CPU架构,每个CPU都访问自身的内存插槽,但是访问其他的节点会非常慢。一个数据库进程是非常耗内存的,因此在NUMA架构下,会经常出现swap页面的情况。命中率过低,swap的速度也很慢。但是其他的节点却在空闲的状态。

使用numactl指定进程的策略,允许从其他节点分配内存。因此,在启动的时候,我们的命令为:

numactl –interleave=all mongod –f /etc/mongodb/mongodb_s0.conf

3.访问控制

在集群搭建的时候,因为服务器硬盘资源的原因,所以,我采用的是:

serverA:mongos+config+shard0

serverB:mongos+config+shard1

serverC:mongos+config+shard2

在3台服务器中跑数据存储层的代码。为admin中分配一个只有我使用的账号,包括的权限有用户管理、集群管理等。在数据库中为其它用户分配的是一个普通的账号,可读可写。当然也可以用特权进行授予只有若干表的查看权限。

use admin

db.createUser({

user:"XXX",

pwd:"XXX",

roles:[

{role:"clusterAdmin",db:"admin"},

{role:"dbOwner",db:"admin"},

{role:"dbOwner",db:"test"}

]

})

use test

db.createUser({

user:"XXX",

pwd:"XXX",

roles:[

{role:"readWrite",db:"test"}

]

})

在分配权限的时候,尤其是我们搭建分片集群的时候,有时候希望去查看shard中的数据,那么你必须在shard中也加入用户的权限,否则如果你使用的是mongos配置的权限,你将无法进入。

mongodb 启动警告相关推荐

  1. 记录MongoDB启动报错MongoDB not running on the provided host and port

    Error1,未启动MongoDB数据库 创立文件夹db,路径为D:\db\MongoDB win+r打开cmd命令行,cd到D:\Program Files\MongoDB\Server\4.1\b ...

  2. Tomcat9 启动警告 org.apache.catalina.webresources.Cache.getResource ...请考虑增加缓存的最大空间

    前言 tomcat 9.0.50 windows 2003 server Tomcat9 启动警告 org.apache.catalina.webresources.Cache.getResource ...

  3. mongodb启动不能锁定_使用MongoDB进行乐观锁定重试

    mongodb启动不能锁定 在我以前的文章中,我谈到了对MongoDB批处理程序采用乐观锁定的好处. 如我之前所写,乐观锁定异常是可恢复的异常,只要我们获取最新的Entity,我们就会对其进行更新并保 ...

  4. mongodb mysql资源占用_如何限制mongodb启动时占用过多内存

    默认情况下,mongodb占用的内存大小为:Starting in 3.4, the WiredTiger internal cache, by default, will use the large ...

  5. MongoDB 教程一: 安装和使用 (Mongodb启动命令mongod参数说明)

    视频: MongoDB 教程一: 安装和使用 Mongodb启动命令mongod参数说明 我们可以通过mongod --help查看mongod的所有参数说明,以下是各参数的中文解释. 基本配置 –q ...

  6. mongodb配置文件启动linux,Linux运维知识之Mongodb启动方法:设定参数启动;从设置文件启动...

    本文主要向大家介绍了Linux运维知识之Mongodb启动方法:设定参数启动;从设置文件启动,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 接手的MongoDB只有一个日志文件 ...

  7. mongodb启动不了:child process failed, exited with error number 100

    原文链接mongodb启动不了:child process failed, exited with error number 100 http://f.dataguru.cn/thread-10736 ...

  8. mongodb启动以及基本命令操作

    mongodb启动以及基本命令操作 介绍: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和 ...

  9. ubuntu下mongodb启动命令

    在终端输入命令:sudo apt-get install mongodb,如果出现找不到的问题,请输入以下命令更新软件库:sudo apt-get update ubuntu环境下使用apt-get命 ...

最新文章

  1. 相机自动对焦AF原理
  2. 洛谷P2397 yyy loves Maths VI (mode) 摩尔投票
  3. Hippo如何进入WebAssembly?一文教会你
  4. winform频繁刷新导致界面闪烁解决方法
  5. 用-force –opengl 指令_OpenGL-使用Tessellation技术绘制Cubic Bézier Patches
  6. 关东升python从小白到大牛_《Python从小白到大牛》第3章 第一个Python程序
  7. mysql时间模糊查询_mysql中那些根据时间查询的sql语句
  8. (四十九)java SpringCloud版本b2b2c鸿鹄云商平台全套解决方案
  9. jquery $.fn $.fx原理
  10. mysql 性能优化 20 条建议
  11. CentOS7命令自动补全
  12. php图片缩放比例缩放,php图片等比例放大与缩小的方法举例
  13. cesium--3d-tiles译文[官方]
  14. 多种代码生成炫酷代码雨(推荐)
  15. ios-app杀死状态下响应推送
  16. 一个有用的Win32消息处理宏HANDLE_MSG
  17. VRAR概念的定义和要素以及技术定义和应用
  18. mac 上传ftp服务器文件大小,mac与windows通过ftp传输文件
  19. 关于上位机和下位机的一些解释
  20. 《转》前端开发面试题

热门文章

  1. 亲手展示Testin云测操作步骤
  2. 【云原生之Docker实战】使用docker部署家庭DOS游戏服务器
  3. 新准则金融资产三分类:AMC、FVOCI和FVTPL
  4. 微信公众号授权登录与服务器配置JAVA详细版
  5. python的算法是指_python中的算法
  6. html file验证文件是否上传,JavaScript判断文件上传类型的方法
  7. Python绘制时序图,ACF和PACF图
  8. 记一次解析Pantone Color TCX 色彩码
  9. 数据库四大隔离级别详解
  10. (51)TCL脚本命令【join】