Debian 上 MongoDB 性能调优实操指南
一 硬件与操作系统基础
GRUB_CMDLINE_LINUX_DEFAULT="quiet numa=off transparent_hugepage=never",执行 sudo update-grub && sudo reboot 生效;echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabledecho never | sudo tee /sys/kernel/mm/transparent_hugepage/defragvm.swappiness 调低(如 10–30),避免内存紧张时剧烈换页。二 存储引擎与缓存配置
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 8 # 按实际内存调整
storage.mmapv1.smallFiles: true 降低内存占用,但该引擎已不推荐用于新部署。三 索引与查询优化
explain("executionStats") 分析执行计划,关注 totalKeysExamined、totalDocsExamined、executionTimeMillis 等指标,必要时改写查询或调整索引。profile: 1, slowms: 200(记录 >200ms 的操作);db.setProfilingLevel(1, 200);system.profile 设为 capped 集合并控制大小(如 4MB),便于保留近期样本。$where/JavaScript、全表更新等昂贵操作。四 网络与连接、副本集与分片
bindIp: 0.0.0.0,并开启 authorization: enabled;对外暴露时配合 TLS 与防火墙策略。secondaryPreferred 可分担读负载;关注复制滞后与 oplog 大小。五 监控、维护与变更流程
db.runCommand({ logRotate: 1 }) 轮转日志,便于归档分析。