涛子 - 简单就是美

成单纯魁增,永继振国兴,克复宗清政,广开家必升

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  428 随笔 :: 0 文章 :: 19 评论 :: 22万 阅读

https://www.mongodb.com/blog/post/capacity-planning-and-hardware-provisioning-mongodb-ten-minutes

安装

yum -y install mongodb-org*
systemctl enable mongod && systemctl restart mongod

mongo命令行客户端登录有警告,用以下方法消除

#1. 数据目录需要用xfs
 ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
 **          See http://dochub.mongodb.org/core/prodnotes-filesystem

opt分区格式化为xfs,将数据目录/var/lib/mongo迁移到/opt,并建立软链接
cd /var/lib && mv mongo /opt && ln -s /opt/mongo mongo
#2. mongodb默认是无密码登录,有风险 
 ** WARNING: Access control is not enabled for the database.
 **          Read and write access to data and configuration is unrestricted.
 
建立管理员admin,对所有数据库有userAdmin权限
db.createUser({user: 'admin', pwd: '@admin', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]})

建立用户test,仅对test数据库有读写权限
use test
db.createUser({user: 'test', pwd: '@test', roles: [{role: 'readWrite', db: 'test'}]})

重新启动mongo服务,启动权限认证功能
echo -e "\nsecurity:\n  authorization: enabled" >> /etc/mongod.conf
systemctl restart mongod

用户认证
db.auth('admin', '@admin')
#3. linux的cpu各核内存共享的机制,在bios或者内核禁用
 ** WARNING: You are running on a NUMA machine.
 **          We suggest launching mongod like this to avoid performance problems:
 **              numactl --interleave=all mongod [other options]

vim /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off"

grub2-mkconfig -o /boot/grub2/grub.cfg
#4. transparent_hugepage机制,在内核中禁用
 ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
 **        We suggest setting it to 'never'
 
 ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
 **        We suggest setting it to 'never'

cat > /lib/systemd/system/disable_transparent_hugepage.service << EOF
[Unit]
Description="Disable Transparent Hugepage before MongoDB boots"
Before=mongodb.service 

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
ExecStart=/bin/bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'

[Install]
RequiredBy=mongod.service
EOF

systemctl enable disable_transparent_hugepage && systemctl start disable_transparent_hugepage
systemctl restart mongod

posted on   北京涛子  阅读(563)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
历史上的今天:
2016-05-19 pxecfg&kickstart生成脚本
2015-05-19 直播流服务器服务状态检测
点击右上角即可分享
微信分享提示