数据库优化
提高读写效率
若使用mongostat
监控到dirty
和used
的差距较大时,存储引擎会大量的使用磁盘,可在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
内存存储引擎,但是一般不用wiredTiger
:wiredTiger
存储引擎的配置engineConfig
:引擎配置cacheSizeGB
:缓存大小,最小0.25G,默认为系统内存的一半再减去1G,若该值小于256MB就会使用256MBjournalCompressor
:数据压缩格式,默认snappy
格式,也可以是zlib
格式或none
不压缩
collectionConfig
:集合配置blockCompressor
:集合数据压缩格式,默认snappy
格式,也可以是zlib
格式或none
不压缩
indexConfig
:索引配置prefixCompression
:是否开启索引前缀压缩,默认开启
连接数
默认MongoDB支持最大连接数为65536个,使用db.serverStatus().connections
可查询当前连接数量 ,在net
配置项下可配置最大连接数
net:
maxIncomingConnections: 65536
若该配置不起作用,很有可能是当前Linux系统下的文件句柄数量不够导致的,所以为了性能考虑,使用ulimit -n
命令可增加文件句柄
Comments NOTHING