
652 > 第 8 章:OceanBase 生态工具介绍
RPC:反馈网络信息。
Memory:Memstore 内存的实时监控。默认情况下,租户可用内存的一半用于 Memstore 的
内存,用来存放业务写操作带来的变化的数据。
OceanBase 的特色之一就是只写数据的变化部分,并且数据会尽可能的维持在内存里不落
盘,直到增量内存利用率到达阈值(参数 freeze_trigger_percentage )后触发转储或合并才
将数据落盘并释放内存。
转储是内存中增量数据直接写到磁盘暂存,合并是内存中增量数据跟磁盘中基线数据在内存
中合并为最新的数据块(sstable)再写回到数据文件中。转储类似传统数据库的 checkpoin
t,对租户性能影响很小并且可以调优,合并对租户性能稍大一些并且也是可以调优的。
通常建议尽量发起转储,在凌晨低峰期时再发起合并操作。合并可以定时触发,也可以手动
触发。当转储次数(参数 minor_freeze_times )用尽时也会自动触发合并。这个监控看的就
是增量内存的变化量、累积量和增量内存使用水位。
这个监控结果再结合视图 gv$memstore 基本上可以定位所有的增量内存不足问题。当这个
内存水位增长到 freeze_trigger_percentage 就会触发转储,当水位继续增长到租户限速阈值
(租户参数 writing_throttling_trigger_percentage )会触发租户写入限速,当水位增长到
接近 100% 的时候,租户内存耗尽,业务写会大量报错(Over tenant memory limit1)。
调优参数 freeze_trigger_percentage 和转储内部并发数可以将租户的内存水位控制在一个
合理的安全的范围内。
IOPS:磁盘 IO 的实时监控。SESS 是会话数(仅供参考,量大的时候可能会不准)。IOR 是
读 IOPS,IOR-SZ 是读 IO 吞吐量。当第一次读入数据或者数据不在内存中时就会有读物理
IO。读物理 IO 如果非常高,会导致 SQL 的平均延时水平很高,说明内存不足,对 IO 依
赖性变大。很可能导致 IO 触达瓶颈。IOW 是写 IOPS,IOW-SZ 是写吞吐量。平时很少有写
IO,因为 OceanBase 的写都在内存里。只有转储和合并的时候,能看到短暂密集的写 IO。
租户节点性能概览
查看租户在各个节点 SQL 的 QPS、RT 以及一些缓存命中率等。
评论