基准测试+线上监控图形+报警阈值

本文探讨了MongoDB的WiredTiger引擎性能优化,包括根据业务场景调整page size和压缩算法。同时,介绍了基准测试工具fio的使用,强调在衡量IOPS时要考虑读写方式和单次IO大小,提供了MongoDB的详细性能参数。

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.youkuaiyun.com/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,并开启压缩算法,也可以为其制定操作系统层面 page cache 大小的 os_cache_max 值,让它不会占用太多的 page cache 内存,防止影响读操作。

这些 MongoDB 的配置项都是和 WiredTiger 引擎数据组织相关的配置项,在了解 WiredTiger 的数据组织方式细节情况下,可以根据具体的业务场景调整 collection 的表配置属性。

总的来说,还是有这个page size大小的概念的,8kb,16kb还是多少。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值