首先贴一下自动生成的mongod.conf配置文件
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
# dbPath: /var/lib/mongodb
dbPath: /home/trade/soft/mongodb-4.2.2/db
# journal:
# enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 22222
bindIp: 0.0.0.0
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
问题描述
- 远程阿里云服务器,配置是2核2G。
- 只开运行一个mongod服务,只要运行程序往数据库中写数据,内存占用就直线上升
解决过程
- 仔细过了一遍写入程序,没有问题
- 使用 mongodb 调优工具,写入读取都没有大问题
- 最后翻阅文档,找到问题在
journal
配置项上
- 从以上图片可以发现:此配置是为了高可用,在崩溃时会用来恢复数据。每次存入数据都会被映射到磁盘上,此过程会导致内存占用过高
- 如果对数据的要求不是很高,可以在配置文件中关闭此配置,cpu占用高的问题就解决了