1,mongodb
https://cloud.tencent.com/developer/article/1005399?from=15425,数据库的基准测试
线上监控图形
场景是,凌晨3点开始的备份,持续时间20分钟,3点05到3点25,平均iops 5000,平均MBps , 单个io size大小,
因为mongodb和MySQL还不太一样,MySQL是innodb引擎,mongodb默认是WiredTiger引擎.
mongo的WT引擎,内存页和磁盘的组织方式与innodb不太一样,参考袁荣喜对WT引擎源码的分析:
https://blog.csdn.net/weixin_45583158/article/details/100143033
https://github.com/yuanrongxi/wiredtiger
根据他的建议:
如果是读多写少的表在创建时我们可以尽量将 page size 设置的比较小 ,比如 16KB,如果表数据量不太大(<2G),甚至可以不开启压缩。那么 createCollection 的 configString 可以这样设置:
"internal_page_max=16KB,leaf_page_max=16KB,leaf_value_max=8KB,os_cache_max=1GB"
如果这个读多写少的表数据量比较大,可以为其设置一个压缩算法,例如:
"block_compressor=zlib, internal_page_max=16KB,leaf_page_max=16KB,leaf_value_max=8KB"
如果是写多读少的表,可以将 leaf_page_max 设置到 1MB,并开启压缩