13-数据库优化

nobility 发布于 2022-12-29 2970 次阅读


数据库优化

提高读写效率

若使用mongostat监控到dirtyused的差距较大时,存储引擎会大量的使用磁盘,可在storage配置项下指定存储引擎,并配置存储引擎适当的缓存大小

storage:
   dbPath: /var/lib/mongo
   journal: 
      enabled: true
   engine: wiredTiger
   wiredTiger:
      engineConfig:
         cacheSizeGB: 0.25
         journalCompressor: snappy
      collectionConfig:
         blockCompressor: snappy 
      indexConfig:
         prefixCompression: true
  • engine:指定存储引擎默认就是wiredTiger存储引擎,还可以是inMemory内存存储引擎,但是一般不用
  • wiredTigerwiredTiger存储引擎的配置
    • engineConfig:引擎配置
      • cacheSizeGB:缓存大小,最小0.25G,默认为系统内存的一半再减去1G,若该值小于256MB就会使用256MB
      • journalCompressor:数据压缩格式,默认snappy格式,也可以是zlib格式或none不压缩
    • collectionConfig:集合配置
      • blockCompressor:集合数据压缩格式,默认snappy格式,也可以是zlib格式或none不压缩
    • indexConfig:索引配置
      • prefixCompression:是否开启索引前缀压缩,默认开启

连接数

默认MongoDB支持最大连接数为65536个,使用db.serverStatus().connections可查询当前连接数量 ,在net配置项下可配置最大连接数

net:
   maxIncomingConnections: 65536

若该配置不起作用,很有可能是当前Linux系统下的文件句柄数量不够导致的,所以为了性能考虑,使用ulimit -n命令可增加文件句柄

此作者没有提供个人介绍
最后更新于 2022-12-29