mongo docker 镜像对于cgroup 的内存管理是有点问题的,所以推荐基于容器运行mongo 的配置上wiredTigerCacheSizeGB 的大小
可以规避内存占用的问题(同时最好做好内存限制)
服务内容占用情况查看
db.adminCommand(
{
hostInfo: 1
}
)
参考配置
version: '3'
services:
db:
image: mongo:4.2-bionic
volumes:
- ./data:/data/db
command: --auth --wiredTigerCacheSizeGB 2
mem_limit: 4096m
ports:
- 27017:27017
environment:
- MONGO_INITDB_ROOT_USERNAME=xxxx
- MONGO_INITDB_ROOT_PASSWORD=xxxxxxxx
version: '3'
- MONGO_INITDB_ROOT_PASSWORD=xxxxxxxx
说明
从容器安全实践来说,配置内存是很有必要的,而且最好配置上,规避一些业务问题,对于检查是否配置成功可以通过adminCommand 的hostInfo 查看
参考资料
https://www.mongodb.com/docs/manual/faq/diagnostics/#must-my-working-set-size-fit-ram
https://hub.docker.com/_/mongo
https://www.mongodb.com/docs/manual/core/wiredtiger/#memory-use