4.1的IOPS隔离是如何实现的

4版本后实现了租户间的IOPS隔离,我想知道这个是如何实现的哪?
如何知道某一个租户当前使用了多少IOPS哪?或者是否知道当前租户的性能瓶颈在IOPS上哪?

感觉看IO 等待监控图可以层面反映问题

可以在日志中grep “IO STATUS” 查看IO配置、实时iops(对应__all_virtual_io_quota表,select * from __all_virtual_io_quota; )

OceanBase的IOPS隔离是自己实现的,没有基于cgroup,相比于cgroup,OB的IOPS隔离除了可以支持资源限制和比例分配外,还支持资源预留。
如果对实现细节感兴趣,可以看下ob_io_manager.cpp
如何观测IOPS的的资源用量,目前还没有公开的视图,可以临时参考下内部表__all_virtual_io_quota,但这里的iops是非归一化的,与unit config中使用的归一化的iops无法直接比较。后续对于iops的观测,OB会设计一个比较清晰用户视图来展示。
如何知道性能瓶颈是否在IOPS上,我不知道你的负载场景以及关心的性能指标是什么,但我觉得一个通用的且比较简单的办法是增加IOPS资源,看下你关心的性能指标是否提升。

2 个赞