MongoDB笔记: 常见问题

系统配置

设置ulimit

MongoDB的文件机制

  • 每个Collection会单独创建一个数据文件(collection-xxxxxx.wt)
  • 每个索引会单独创建一个文件(index-xxxxxx.wt)
  • 每个Collection至少需要一个数据文件和一个默认索引(_id索引)

这样每创建1个Collection会占用2个文件句柄, 还需要包含MongoDB自身需要使用的句柄(内部文件如wiredTiger.wt之类, 加上网络连接), 所以Collection的数量是受系统限制的. MongoDB推荐的方式是分片, 不是分库分表. 会造成的问题比如重启时间会很长, 这不是MongoDB推荐的使用方式.

在句柄消耗达到系统上限后, 会报directory-sync: open: Too many open files错误, 并导致mongod崩溃退出. 增加限制需要修改/etc/security/limits.conf (或者 /etc/security/limits.d/20-nproc.conf), 增加或修改为以下内容

*          soft    nofile    10240
*          hard    nofile    10240
*          soft    nproc     10240
*          hard    nproc     10240
root       soft    nproc     unlimited

需要重启, 用 ulimit -n 检查

 

上一篇:linux httpd的make编译 make[2]: [htpasswd] 错误 1


下一篇:kickstart 最小化安装centos8