mongo启动WARNING: /proc/sys/vm/zone_reclaim_mode is 1
从图片上明显看到
Tue Sep 2 10:00:10 [initandlisten] ** WARNING: /proc/sys/vm/zone_reclaim_mode is 1 Tue Sep 2 10:00:10 [initandlisten] ** We suggest setting it to 0 Tue Sep 2 10:00:10 [initandlisten] ** http://www.kernel.org/doc/Documentation/sysctl/vm.txt
启动程序报了个警告,警告的意思:建议将 zone_reclaim_mode 设置为 0
zone_reclaim_mode 这是一个内核参数,意义如下:
a、当某个节点可用内存不足时:
1、如果为0的话,那么系统会倾向于从其他节点分配内存
2、如果为1的话,那么系统会倾向于从本地节点回收Cache内存多数时候
b、Cache对性能很重要,所以0是一个更好的选择。
这是其官方文档的介绍 http://www.kernel.org/doc/Documentation/sysctl/vm.txt
出现这个问题一般和 WARNING: You are running on a NUMA machine. 这个警告同时报出来
这个问题已经有文章说明了 http://www.uuboku.com/212.html
说的都是内核中cpu和内存分配情况
【解决办法】
[root@cangku-1-132 ~]# echo 0 > /proc/sys/vm/zone_reclaim_mode [root@cangku-1-132 ~]# echo "echo 0 > /proc/sys/vm/zone_reclaim_mode" >> /etc/rc.d/rc.local
首先把 /proc/sys/vm/zone_reclaim_mode 的内核修改 0 ,然后把这个 配置项写到 启动程序中,问题就得以解决了。
顺便说下第二个红框种的问题
--maxConns too high, can only handle 819
[root@cangku-16-132 log]# ulimit -n 1024 [root@cangku-16-132 log]# ulimit -n 2500 [root@cangku-16-132 log]# ulimit -n 2500
说是个问题其实也不是问题。出现这个警告是因为启动mongodb的时候,有传递一个参数maxConns:2000 。这个参数对于mongodb太高了,他目前只能接受819的最大连接数。
进入mongodb查看下
[root@cangku-16-132 ~]# mongo 192.168.1.132:27017/admin -u root -p ****** MongoDB shell version: 2.2.7 connecting to: 192.168.1.132:27017/admin > db.serverStatus().connections { "current" : 14, "available" : 805 }
最大连接数是 14+805 = 819
其实是Linux默认进程能打开最大文件数有关,可以通过ulimit 解决
ulimit -n 2500
按照原来的参数再次启动 mongodb,这个提示没有了。
登录mongodb,产看现在的连接数:
[root@cangku-16-132 rc.d]# mongo 192.168.1.132:27017/admin -u root -p ****** MongoDB shell version: 2.2.7 connecting to: 192.168.1.132:27017/admin > db.serverStatus().connections { "current" : 11, "available" : 1989 }
最大连接数已经变 11+1989=2000 了。
备注:
1、修改mongodb最大连接数,在启动里边加参数 –maxConns=20000 或者在 /etc/mongod.cnf(mongoDB配置文件) 都可以。
2、mongoDB最大连接数是20000。所以业界流传一段话,千万级以下的用mysql、千万级以上的用mongodb,亿级以上的用hadoop。
3、ulimit -n 2500 这个配置只能在本次打开的终端中生效,关闭终端或者重启服务器,配置都会失效。
要想永久生效,还请看下篇文章的讲解!
相关推荐
- linux中rsync详解(同步文件利器)
- Posted on 05月16日
- linux查看cpu个数、核心数、进程数、内存大小、硬盘大小、网卡信息等信息
- Posted on 05月29日
- Js中apply和call方法详解
- Posted on 05月14日
- mysql 数据类型 Float、Double、Decimal和Numeric 的区别
- Posted on 06月28日