【 使用环境 】生产环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.1-8BP
【问题描述】
如图,根据监控显示,主副本,每间隔一段时间,磁盘的io写吞吐量会爆满。 这期间,对业务读来说,是会明显感到卡顿的。如何控制当memstore 写满,需要写入磁盘时,往磁盘写入的速度。避免这种对业务读的短波影响。
生产集群内存配置比较高。512G的机器。分配给了OB400GB内存。
集群配置的memstore_limit_percentage = 25
【 使用环境 】生产环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.1-8BP
【问题描述】
如图,根据监控显示,主副本,每间隔一段时间,磁盘的io写吞吐量会爆满。 这期间,对业务读来说,是会明显感到卡顿的。如何控制当memstore 写满,需要写入磁盘时,往磁盘写入的速度。避免这种对业务读的短波影响。
生产集群内存配置比较高。512G的机器。分配给了OB400GB内存。
集群配置的memstore_limit_percentage = 25
磁盘读延时这么高,IO 吞吐能力这么低,莫非磁盘不是 nvme ssd
?
内存配置可以这么高,磁盘不应该配置这么低。
磁盘性能低的时候可以考虑加大 memstore_limit_percentage
内存比例,以及延迟转储时机(writing_throttling_trigger_percentage
调整到 90,freeze_trigger_percentage
调大到 70),减少落盘次数。但是一旦写到触发转储时,落盘的时候该写的数据量一样不会少,IO 还是会很卡。
参考庆涛老师的可以调整writing_throttling_trigger_percentage或者可以适当调小以提前触发转储,减少 MemStore 写满的风险。控制 MemStore 使用比例达到阀值时触发冻结。默认值为 70
ALTER SYSTEM SET freeze_trigger_percentage=60;
可以根据 CPU 资源情况适当增加线程数以提高转储速度
ALTER SYSTEM SET minor_merge_concurrency=10;
阿里云的云盘。 Auto性能突发类型的。 目前没做预配置。io总上限256MB/s
为啥我考虑的和你相反, 减小memstore_limit_percentage内存比例。 让每次落盘数据少点,减少峰值时间··· 这加大了,反而会拉长落盘时间。 业务感受更明显了··· 但这都不是彻底解决的路径。。 磁盘io性能总有上限。。
阿里云云盘容量多大?如果容量很大,可以考虑大盘 拆小 用lvm 提升盘 io 延时性能,参考: OB 4.2 SQL 性能抖动诊断案例分享(二)
加大到想法是尽可能用内存兜住,减少一天24小时转储的次数, 或者尽可能拖到晚上低峰期 等慢慢合并。
盘太差,影响总是难以根治。
前来学习一下