MongoDB 数据库内存优化

948 阅读1分钟

1. 操作系统优化

  cat /sys/kernel/mm/transparent_hugepage/enabled
  cat /sys/kernel/mm/transparent_hugepage/defrag
  echo never > /sys/kernel/mm/transparent_hugepage/enabled
  echo never > /sys/kernel/mm/transparent_hugepage/defrag

2. Stack 优化

  • MongoDB 实际使用的 大小查看
cat /proc/$(pidof mongod)/limits | grep stack | awk -F 'size' '{print int($NF)/1024}'
  • 调整
    默认10M,1000个连接就占10G内存,调小至1M;
    ulimit -a 默认的 stack size (kbytes, -s) 10240

  • 修改StackSize
    ulimit -s 1024

    vi /etc/security/limits.conf

  * soft stack 1024
  * hard stack 1024

3. Mongodb内存大小配置建议

MongoDB默认分配的内存大小为系统内存的50%

MongoDB应该分配的内存大小最好满足:内存大小 > 索引+热数据+连接占用内存,通过db.stats()查数据及索引大小;

内存调整方法:MongoDB 动态调整wiredTigerCacheSizeGB 参数 - 掘金 (juejin.cn)