MongoDB优化警告

** WARNING: The configured WiredTiger cache size is more than 80% of available RAM.
See http://dochub.mongodb.org/core/faq-memory-diagnostics-wt

翻译:
**警告:配置的WiredTiger缓存大小超过可用RAM的80%,参见http://dochub.mongodb.org/core/faq-memory-diagnostics-wt

解决方法:服务器加内存

** WARNING: Access control is not enabled for the database.
Read and write access to data and configuration is unrestricted.

翻译:**警告:数据库没有启用访问控制,对数据和配置的读写访问不受限制。

解决方法:
(1)切换到admin库,创建一个admin用户,设置密码
use admin
ad.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})

(2)在启动配置文件中添加上这样两条参数

 

security:
  authorization: enabled

** WARNING: You are running this process as the root user, which is not recommended.

翻译:**警告:您正在以root用户运行此进程,不推荐使用。

解决方法:
1.创建用户
useradd mongo
2.给用户设置密码
echo '123456' |passwd --stdin mongo
3.给软件目录数据目录Mongo权限
chown -R mongo:mongo /opt/mongo_cluster/
chown -R mongo:mongo /data/mongo_cluster/
4.切换用户
su - mongo
5.给普通用户配置环境变量
vim .bashrc
export PATH=root/mongo_cluster/mongodb/bin:$PATH
6.启动MongoDB,如果起不来切换到root用户查看一下数据目录的权限是不是没有给到mongo这个用户
mongod -f /opt/mongo_cluster/mongo_27017/conf/mongo.conf
** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.We suggest setting it to 'never'
** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.We suggest setting it to 'never'
 翻译:defrag is 'always',enabled is 'always',我们建议设置为“never”
解决方法:
1.查看一下当前在哪个位置
cat /sys/kernel/mm/transparent_hugepage/enabled
2.临时更改,重启失效
echo never >/sys/kernel/mm/transparent_hugepage/enabled
echo never >/sys/kernel/mm/transparent_hugepage/defrag
3.永久关闭,看官方说明:https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/
(1)用官方的脚本写入到开机自启动
vim /etc/init.d/disable-transparent-hugepages
#!/bin/bash
### BEGIN INIT INFO
# Provides:          disable-transparent-hugepages
# Required-Start:    $local_fs
# Required-Stop:
# X-Start-Before:    mongod mongodb-mms-automation-agent
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Disable Linux transparent huge pages
# Description:       Disable Linux transparent huge pages, to improve
#                    database performance.
### END INIT INFO

case $1 in
  start)
    if [ -d /sys/kernel/mm/transparent_hugepage ]; then
      thp_path=/sys/kernel/mm/transparent_hugepage
    elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then
      thp_path=/sys/kernel/mm/redhat_transparent_hugepage
    else
      return 0
    fi

    echo 'never' | tee ${thp_path}/enabled > /dev/null
    echo 'never' | tee ${thp_path}/defrag > /dev/null
unset thp_path ;; esac

(2)给执行权限

 chmod 755 /etc/init.d/disable-transparent-hugepages

(3)加载一下

sourece /etc/init.d/disable-transparent-hugepages

(4)设置开机自启动,查看是否添加成功

chkconfig --add disable-transparent-hugepages
chkconfig --list|grep disable

(5)重启验证

mongod -f /opt/mongo_cluster/mongo_27017/conf/mongo.conf --shutdown
mongod -f /opt/mongo_cluster/mongo_27017/conf/mongo.conf

** WARNING: soft rlimits too low. rlimits set to 3881 processes, 65535 files. 
Number of processes should be at least 32767.5 : 0.5 times number of files.

翻译:**警告:软rlimit太低。rlimits设置为3881个进程,65535个文件。进程数应至少为32767.5:文件数的0.5倍。

解决方法:
1.vim /etc/profile
uimit -u 64000
source /etc/profile
2.重启MongoDB
mongod -f /opt/mongo_cluster/mongo_27017/conf/mongo.conf --shutdown
mongod -f /opt/mongo_cluster/mongo_27017/conf/mongo.conf

 

posted @ 2020-12-26 11:39  鄧萌  阅读(1252)  评论(0)    收藏  举报