安装前提
部署到物理机上或者比较讲究的可以看看安装前提,咱不讲究的往下看。
YUM源
首先先编辑一个YUM源的配置文件,源还是改成阿里云的,速度快。
vim /etc/yum.repos.d/mongodb-org-3.4.repo
[mongodb-org-3.4]
name=MongoDB Repository
#baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/6Server/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
安装
yum install mongodb-org-3.4.10 mongodb-org-server-3.4.10 mongodb-org-shell-3.4.10 mongodb-org-mongos-3.4.10 mongodb-org-tools-3.4.10 -y
这里我建议指定版本安装,方便统一版本。
配置文件
vim /etc/mongod.conf
path: /data/mongodb/27017/27017.log
dbPath: /data/mongodb/27017/
pidFilePath: /data/mongodb/27017/27017.pid
mkdir -p /data/mongodb/27017 && chown -R mongod.mongod /data/mongodb/
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag
/etc/init.d/mongod start
防止YUM升级mongodb
vim /etc/yum.conf
在最底下添加
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
备份
/usr/bin/mongodump --gzip -o /path/to
日志切割
kill -USR1 `cat /data/mongodb/27017/27017.pid`
安装PHP扩展
cd /root/software/
wget -c http://pecl.php.net/get/mongodb-1.3.0RC1.tgz
tar zxvf mongodb-1.3.0RC1.tgz
cd mongodb-1.3.0RC1
phpize && ./configure && make install && make install
cd /root/software/
wget -c http://scripts.showshowbaby.com/lnmp/soft/mongo-1.4.3.tgz
tar zxvf mongo-1.4.3.tgz && cd mongo-1.4.3
/usr/local/php/bin/phpize && ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install
添加到php.ini
extension=mongodb.so
extension=mongo.so
重启PHP-FPM
/etc/init.d/php-fpm reload
注意
从MongoDB3.4开始,WiredTiger将会占用比较大的内存空间
50% of (RAM - 1 GB),or
256MB
比如8G,MongoDB使用的内存就是(8GB-1GB)* 50% = 3.5GB
所以过了一段时间后,mongodb会占用比较大的内存,甚至是发生oom
查看WiredTiger内部缓存到底占用了多少内存
db.runCommand( { serverStatus: 1 } ).wiredTiger.cache["bytes currently in the cache"]
在线修改
db.adminCommand({setParameter: 1, wiredTigerEngineRuntimeConfig: "cache_size=8G"})
命令行修改
/usr/bin/mongod --config /etc/mongod.conf --fork --wiredTigerCacheSizeGB 8
配置文件修改
storage:
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 8