写点什么

华为开发者空间:鲲鹏服务器 MongoDB RPM 部署与调优

  • 2025-09-16
    中国香港
  • 本文字数:3015 字

    阅读完需:约 10 分钟

华为开发者空间:鲲鹏服务器 MongoDB RPM 部署与调优

1 概述

1.1 背景介绍

MongoDB 是一个基于分布式文件存储的数据库。由 C++语言编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。性能调优是一个涉及多个层面的复杂过程,从硬件和操作系统的选择到子系统的设计和算法选择,都需要仔细考虑。在调优过程中,必须遵循一定的原则以确保得到正确的结果。通过本实验,用户可以快速掌握鲲鹏服务器中 MongoDB 的安装与使用,并对其性能调优有清晰认识。

1.2 适用对象

  • 企业

  • 个人开发者

  • 高校学生

1.3 案例时间

本案例总时长预计 60 分钟。

1.4 案例流程


说明:① 自动部署并连接鲲鹏服务器;② 配置安装环境;③ 安装 MongoDB;④ 调优指南。

1.5 资源概览

本案例花费总计 0 元。


最新案例动态,请查阅 《鲲鹏BoostKit之MongoDB安装与调优指南》。小伙伴快来领取华为开发者空间进行实操吧!

2 操作步骤

2.1 自动部署鲲鹏服务器

本案例中,使用云主机提供的鲲鹏沙箱资源,只需要执行简单的自动部署命令即可拉起一台免费的鲲鹏服务器。1. 在云主机桌面右键选择“Open Terminal Here”,打开终端命令窗口。2. 输入自动部署命令,命令如下:


hcd deploy --password abcd1234@ --time 3600
复制代码


命令的参数说明:


  • password:password 关键字后设置的是鲲鹏服务器的 root 用户密码,命令中给出的默认为 abcd1234@,开发者可以替换成自定义密码(至少 8 个字符)。

  • time:time 关键字后面设置的为鲲鹏服务器的可用时间,单位为秒,至少 600 秒。当前实验预估需要 1 小时,在命令中申请的时间为 60 分钟,即 3600 秒。

2.2 配置安装环境

使用命令登录到鲲鹏服务器,命令如下:


ssh root@鲲鹏云服务器弹性公网IP 
复制代码



停止防火墙。


systemctl stop firewalld.service
复制代码


关闭防火墙。


systemctl disable firewalld.service
复制代码


查看防火墙状态。


systemctl status firewalld.service
复制代码



创建数据目录以存储 MongoDB 的数据文件。执行如下命令创建数据目录。


mkdir /datamkdir -p /data/mongo
复制代码


配置外网 Yum 源:查看 Yum 源,可以看到存在外网 Yum 源(存在后缀为.repo 的文件)。


ls /etc/yum.repos.d/
复制代码


使 Yum 源生效。


yum clean allyum makecacheyum list
复制代码


配置本地 Yum 源:下载 OS 镜像文件。(备用下载地址:https://mirrors.huaweicloud.com/centos-vault/altarch/7.6.1810/isos/aarch64/CentOS-7-aarch64-Everything-1810.iso)


wget https://dtse-mirrors.obs.cn-north-4.myhuaweicloud.com/case/0013/CentOS-7-aarch64-Everything-1810.iso
复制代码


挂载 OS 镜像文件,编辑文件。


mount /root/CentOS-7-aarch64-Everything-1810.iso /mntvim /etc/fstab
复制代码


按“i”进入编辑模式,在文件末尾添加如下信息。输入完成后按“Esc”键,输入 “:wq”,按“Enter”保存并退出编辑。


/root/CentOS-7-aarch64-Everything-1810.iso /mnt iso9660 loop 0 0
复制代码


备份 Yum 源。


cd /etc/yum.repos.dmkdir bakmv *.repo bak
复制代码


配置本地 Yum 源。


cd /etc/yum.repos.dvim local.repo
复制代码


按“i”进入编辑模式,在文件末尾添加如下信息。输入完成后按“Esc”键,输入 “:wq”,按“Enter”保存并退出编辑。


[local]name=local.repobaseurl=file:///mntenabled=1gpgcheck=0
复制代码


查看 local.repo 文件。


cat local.repo
复制代码



使 Yum 源生效。


yum clean allyum makecacheyum list
复制代码

2.3 安装 MongoDB

本文以 MongoDB 4.0.12 版本为例通过 RPM 包安装 MongoDB 和 MongoDB Tools 的操作步骤。安装依赖包。


cd ~yum -y install python2 python2-setuptools python2-devel net-tools
复制代码


切换到“/root”目录下,分别下载 MongoDB 和 MongoDB Tools 的 RPM 包。


cd /rootwget https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/database/mongo-4.0.12-1.el7.aarch64.rpm  --no-check-certificatewget https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/database/mongodb-tools-4.0.6-1.aarch64.rpm  --no-check-certificate
复制代码


安装 MongoDB 和 MongoDB Tools 的 RPM 包。


rpm -ivh mongo-4.0.12-1.el7.aarch64.rpm rpm -ivh mongodb-tools-4.0.6-1.aarch64.rpm
复制代码


查看安装后的 MongoDB 和 MongoDB Tools 的 RPM 包和路径。


rpm -qa | grep mongo-4.0.12 rpm -qa | grep mongodb-tools-4.0.6-1ll /usr/local/mongo/bin/ ll /usr/local/mongodb-tools/bin/
复制代码



查看 MongoDB 版本。


cd ~find / -name mongod/usr/local/mongo/bin/mongod --version
复制代码


修改 MongoDB 的配置文件,删除并新建“/etc/mongodb.cnf”文件。


rm -f /etc/mongodb.cnfvim /etc/mongodb.cnf
复制代码


按“i“进入编辑模式,添加如下内容,添加完成后按“Esc”键,输入“:wq”,按“Enter”保存并退出编辑。


dbpath=/data/mongologpath=/data/mongo/mongo.loglogappend=trueport=27017fork=trueauth=falsebind_ip=0.0.0.0
复制代码


配置文件参数说明:


  • dbpath 代表数据文件存放目录。

  • logpath 代表日志文件存放目录。

  • logappend=true 代表日志以追加的形式添加。

  • port 代表端口号。

  • fork=true 代表以守护程序的方式启用,即在后台运行。

  • auth=false 代表连接数据库不需要验证用户名和密码。

  • bind_ip 代表可以访问的地址。127.0.0.1 表示自己访问,0.0.0.0 表示所有人都能访问。


启动 MongoDB 数据库,使用配置文件启动 MongoDB 数据库。


nohup /usr/local/mongo/bin/mongod -f /etc/mongodb.cnf &
复制代码


确认 MongoDB 数据库进程是否正常启动,可以看到数据库进程 ID 为 2995 且已正常启动。


ps -ef | grep mongod
复制代码


查看 MongoDB 数据库的监测端口,在本例中 MongoDB 数据库的监测端口为 27017。


netstat -anpt
复制代码



登录 MongoDB 数据库并验证数据库是否可以正常运行。


cd /usr/local/mongo/bin./mongo
复制代码


查看当前存在的数据库,并输入“exit“退出。


show dbs
复制代码



验证 MongoDB Tools 中的命令是否正常,进入 MongoDB Tools 的 bin 目录。


cd /usr/local/mongodb-tools/bin/
复制代码


验证 MongoDB Tools 命令是否正常。本文以 mongorestore 和 mongoreplay 为例进行说明。


./mongorestore --version./mongorestore --help./mongoreplay --version./mongoreplay --help
复制代码


2.4 调优指南

2.4.1 缓存参数调优

编辑文件,按“i“进入编辑模式,将“vm.swappiness = 0“ 修改为“vm.swappiness = 1“,修改完成后按“Esc”键,输入“:wq”,按“Enter”保存并退出编辑。


vim /etc/sysctl.conf
复制代码


原理:vm.swappiness 值越大,越积极使用交换分区;值越小,越积极使用内存,将值设置为“1”,以减少交换分区的使用。



执行如下命令使修改生效。


sysctl -p
复制代码


将 dirty_ratio 参数设置为“5“,表示内存里的脏数据百分比不能超过这个值。


echo 5 > /proc/sys/vm/dirty_ratio
复制代码

2.4.2 数据库参数调优

通过调整数据库的配置参数,可以有效提升数据库的性能和可靠性(根据实际需求设计即可)。请参见下表修改数据库的配置文件。配置文件默认为“/etc/mongodb.cnf”,修改配置文件后需重启数据库生效。

2.4.3 客户端优化

编辑文件。


vim /etc/sysctl.conf
复制代码


按“i”进入编辑模式,在末尾追加以下内容。


net.ipv4.ip_local_port_range = 1024     65535net.ipv4.tcp_tw_reuse = 1net.core.somaxconn = 65535net.core.netdev_max_backlog = 8096net.ipv4.tcp_max_syn_backlog = 8192net.ipv4.tcp_keepalive_time = 600net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_max_tw_buckets = 3000
复制代码



追加完成后按“Esc”键,输入“:wq”,按“Enter”保存并退出编辑。执行以下使修改结果立即生效。


sysctl -p
复制代码


至此,鲲鹏 BoostKit 之 MongoDB 安装与调优全部完成。


用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
华为开发者空间:鲲鹏服务器 MongoDB RPM 部署与调优_mongodb_华为云开发者联盟_InfoQ写作社区