博主自主知识产权《springboot深入浅出系列课程》(16章97节文档) 已经上线,请关注

centos6.6下安装MongoDB3.x

mongodb 字母哥 0评论

centos6.6下安装MongoDB3.x

  • 从MongoDB3.0版起,其安装包比以前更细化:
    Linux 64-bit legacy 这个版本即mongodb-linux-x86_64-3.x.tgz 不推荐在正式环境使用,这个版本特点是没有连接ssl相关的库。推荐按相应操作系统版本选择对应的安装包如centos6 rhel6选择RHEL 6.

规划安装目录

  • 新建用户nosql:useradd nosql
  • mongodb解压安装目录:/home/nosql
  • 数据目录:mkdir -p /home/nosql/data/mongodb
  • 日志目录 mkdir -p /home/nosql/data/logs
  • 初始化日志 touch /home/nosql/data/logs/mongodb.log
    chmod -R 777 /home/nosql/data/logs/mongodb.log

安装openssl(root)


# yum install -y openssl-devel openssl

下载安装


# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.1.tgz # tar xzvf mongodb-linux-x86_64-rhel62-3.2.1.tgz -C /home/nosql # mv /home/nosql/mongodb-linux-x86_64-rhel62-3.2.1 /home/nosql/mongodb

调整系统参数

设置ulimit -n和ulimit -u的值大于20000。如果ulimit的值设置过低的话,当MongoDB处于 频繁访问的状态下,将会产生错误,最终导致无法连接到MongoDB实例。


# ulimit -n 25000 # ulimit -u 25000

配置文件参数配置


# cd /home/nosql/mongodb/bin/ # vi mongodb.conf port=27017 #端口 dbpath=/home/nosql/data/mongodb #数据文件存放目录 logpath=/home/nosql/data/logs/mongodb.log #日志文件 logappend=true #使用追加的方式写日志 fork=true #以守护程序的方式启用,即在后台运行 bind_ip=127.0.0.1,192.168.137.1 #绑定本机ip noauth=true #不启用验证 nohttpinterface=true rest=false

设置防火墙


vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT /etc/init.d/iptables restart

启动命令:


# /home/nosql/mongodb/bin/mongod --config /home/nosql/mongodb/bin/mongodb.conf 或 # /home/nosql/mongodb/bin/mongod -f /home/nosql/mongodb/bin/mongodb.conf

正常停止方法:


# ps aux | grep mongod # kill -2 PID 或 # /home/nosql/mongodb/bin/mongo > use admin > db.shutdownServer(); 2015-03-19T00:43:27.760+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2015-03-19T00:43:27.760+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
  • 不重启服务器的情况下解决办法,在Linux下执行:

echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
  • 服务器重启后立即生效办法:

# vi /etc/rc.local if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi

开机自动启动mongodb


# vi /etc/rc.d/rc.local rm -rf /home/nosql/mongodb/mongod.lock /home/nosql/mongodb/bin/mongod -f /home/nosql/mongodb/bin/mongodb.conf

mongodb的NUMA问题解决方案

mongodb的NUMA问题
NUMA是什么?为什么使用NUMA?
mongodb日志显示如下:
WARNING: You are running on a NUMA machine.
We suggest launching mongod like this to avoid performance problems:
numactl –interleave=all mongod [other options]
* 解决方案:

  1. 在原启动命令前面加numactl –interleave=all

    如# numactl --interleave=all ${MONGODB_HOME}/bin/mongod --config conf/mongodb.conf

  2. 修改内核参数

    echo 0 > /proc/sys/vm/zone_reclaim_mode

http://www.mongodb.org/display/DOCS/NUMA

安装MongoChef

linux版本:
wget https://cdn.3t.io/mongochef/linux/3.3.0.1717/mongochef-linux-x86-dist.tar.gz

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址