mongodb 启动警告
来源:互联网 发布:网络的消极作用 编辑:程序博客网 时间:2024/06/08 01:49
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启动的一些警告处理方法
- Tomcat启动警告
- Tomcat启动--警告: [SetPropertiesRule]
- elasticsearch启动警告
- Redis 启动警告解决
- php 启动警告
- MongoDB启动
- MongoDB启动
- MongoDB启动
- 启动mongodb
- mongodb启动
- mongodb启动
- mongodb启动
- mongodb安装启动mongodb
- 去除启动hadoop的警告
- Redis 启动警告错误解决
- redis 启动警告及处理
- DLL函数调用规则
- 心得三、做事先做人(转载)
- 技术在与不断的学习新东西&记录和搜集
- Docker安装和简单使用入门
- PAT 1098. Insertion or Heap Sort (25)
- mongodb 启动警告
- struts 的 include标签
- org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map
- 2017美国数学建模ICM E题(环境) 翻译 需要可持续城市!(Sustainable Cities Needed!)
- 使用Android Studio新建Project并建立多个module
- 为何导热硅脂清洗会出现黑物质
- 46、Power Query-Table.FillDown函数简介
- python flask发送邮件嵌入图片 Outlook
- 排序之冒泡算法实例