mongodb 启动警告
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 启动警告相关推荐
- 记录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 ...
- Tomcat9 启动警告 org.apache.catalina.webresources.Cache.getResource ...请考虑增加缓存的最大空间
前言 tomcat 9.0.50 windows 2003 server Tomcat9 启动警告 org.apache.catalina.webresources.Cache.getResource ...
- mongodb启动不能锁定_使用MongoDB进行乐观锁定重试
mongodb启动不能锁定 在我以前的文章中,我谈到了对MongoDB批处理程序采用乐观锁定的好处. 如我之前所写,乐观锁定异常是可恢复的异常,只要我们获取最新的Entity,我们就会对其进行更新并保 ...
- mongodb mysql资源占用_如何限制mongodb启动时占用过多内存
默认情况下,mongodb占用的内存大小为:Starting in 3.4, the WiredTiger internal cache, by default, will use the large ...
- MongoDB 教程一: 安装和使用 (Mongodb启动命令mongod参数说明)
视频: MongoDB 教程一: 安装和使用 Mongodb启动命令mongod参数说明 我们可以通过mongod --help查看mongod的所有参数说明,以下是各参数的中文解释. 基本配置 –q ...
- mongodb配置文件启动linux,Linux运维知识之Mongodb启动方法:设定参数启动;从设置文件启动...
本文主要向大家介绍了Linux运维知识之Mongodb启动方法:设定参数启动;从设置文件启动,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 接手的MongoDB只有一个日志文件 ...
- mongodb启动不了:child process failed, exited with error number 100
原文链接mongodb启动不了:child process failed, exited with error number 100 http://f.dataguru.cn/thread-10736 ...
- mongodb启动以及基本命令操作
mongodb启动以及基本命令操作 介绍: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和 ...
- ubuntu下mongodb启动命令
在终端输入命令:sudo apt-get install mongodb,如果出现找不到的问题,请输入以下命令更新软件库:sudo apt-get update ubuntu环境下使用apt-get命 ...
最新文章
- 相机自动对焦AF原理
- 洛谷P2397 yyy loves Maths VI (mode) 摩尔投票
- Hippo如何进入WebAssembly?一文教会你
- winform频繁刷新导致界面闪烁解决方法
- 用-force –opengl 指令_OpenGL-使用Tessellation技术绘制Cubic Bézier Patches
- 关东升python从小白到大牛_《Python从小白到大牛》第3章 第一个Python程序
- mysql时间模糊查询_mysql中那些根据时间查询的sql语句
- (四十九)java SpringCloud版本b2b2c鸿鹄云商平台全套解决方案
- jquery $.fn $.fx原理
- mysql 性能优化 20 条建议
- CentOS7命令自动补全
- php图片缩放比例缩放,php图片等比例放大与缩小的方法举例
- cesium--3d-tiles译文[官方]
- 多种代码生成炫酷代码雨(推荐)
- ios-app杀死状态下响应推送
- 一个有用的Win32消息处理宏HANDLE_MSG
- VRAR概念的定义和要素以及技术定义和应用
- mac 上传ftp服务器文件大小,mac与windows通过ftp传输文件
- 关于上位机和下位机的一些解释
- 《转》前端开发面试题