官方几乎所有的文章介绍Mongo配置信息都是使用YAML结构的,但是似乎在一般的Linux系统中的/etc/mongodb.conf又是标准的ini结构(也就是key=value)这种。结果网上找到好多优化方案的参数都无法直接填到这种系统的配置文件中
关键是还不能用通常的yaml转ini的规范,去把官方配置key填写到ini结构的mongodb.conf文件中,否则就会报错
譬如,网上提到调整mongo的wt缓存大小的参数,官方以及网上的说法都是使用yaml格式,类似下列的
storage:
wiredTiger:
engineConfig:
cacheSizeGB: <number>
journalCompressor: <string>
directoryForIndexes: <boolean>
collectionConfig:
blockCompressor: <string>
indexConfig:
prefixCompression: <boolean>
如果要在linux系统中的mongodb.conf增加这段配置,无论是写storage.wiredTiger.engineConfig.cacheSizeGB=xxx,还是先用[storage]段落的形式,都不正确。
最后找了无数的地方,最终在官方找到一个yaml转命令行参数的映射关系表映射文章,通过这个文章中的参数表,才发现MD两者其实竟然完全不一样的,也就是毫无规律可言,TMD真心被折腾死……
https://docs.mongodb.com/manual/reference/configuration-file-settings-command-line-options-mapping/