【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】 超级繁忙的系统,一天合并一次,甚至合并被阻塞,有哪些影响?
合并触发有三种触发方式:自动触发、定时触发与手动触发。
当一个租户的冻结次数达到 major_compact_trigger 时自动触发合并。OceanBase 数据库 V4.x 版本中,其默认值为 0,表示关闭该方式的合并自动触发。
手动触发,不介入手动触发。
定时触发,major_freeze_duty_time 开启定时执行合并。
超级繁忙的系统,一天合并一次,甚至合并被阻塞,有哪些影响?从 磁盘大小,读写性能等分析合并前后变化。
@论坛小助手
超级繁忙的系统在进行一天一次的合并(compaction)操作,尤其是在合并过程中出现阻塞的情况下,可能会对系统的整体性能和稳定性产生较大的影响。以下是基于磁盘大小、读写性能等方面的分析:
磁盘大小
- 合并前:频繁的小量写入会导致大量的小文件或数据块产生,这不仅会增加存储占用,还会导致存储碎片化。碎片化的存储会影响后续的读写效率,特别是在需要进行大量随机读取操作时。
- 合并后:合并过程会将多个小文件或数据块合并成较大的文件或数据块,从而减少存储碎片化。这样可以释放一部分磁盘空间,提高存储利用率。
读写性能
-
合并前:
- 读性能:由于存在大量的小文件或数据块,读取操作可能需要访问多个文件,增加了 I/O 操作次数,导致读取速度下降。
- 写性能:频繁的小量写入会增加磁盘的 I/O 负载,特别是在并发写入的情况下,可能导致写入速度变慢。
-
合并后:
- 读性能:合并后的数据更加集中,减少了需要访问的文件数量,提高了读取速度和效率。
- 写性能:合并过程本身会占用一定的 I/O 资源,因此在合并期间,写入性能可能会有所下降。但合并完成后,写入性能通常会有所提升,因为减少了碎片化的影响。
合并被阻塞的影响
- 系统响应时间:合并被阻塞会导致合并任务长时间无法完成,这期间系统可能会出现响应变慢的情况,特别是对于需要实时处理的业务来说,影响更为明显。
- 资源竞争:合并任务与正常的读写操作之间可能存在资源竞争,尤其是在资源有限的情况下,合并被阻塞可能会导致其他操作也无法顺利进行。
- 存储效率:合并被阻塞会导致存储碎片化问题持续存在,进而影响存储效率和性能。
使用 obdiag 工具进行诊断
为了更好地了解合并过程中存在的问题,建议使用 obdiag 工具进行日志采集和根因分析。
日志采集
日志采集场景: 合并问题
日志采集命令:
obdiag gather scene run --scene=observer.compaction
该命令会收集与合并操作相关的日志信息,包括合并任务的状态、I/O 操作情况等,帮助您了解合并过程中是否存在异常。
根因分析
根因分析场景: 卡合并场景
根因分析命令:
obdiag rca run --scene=major_hold
该命令会对合并被阻塞的问题进行根因分析,帮助您确定导致合并被阻塞的具体原因。
需要您提供的信息
为了更准确地诊断问题,请您提供以下信息:
- 系统当前的磁盘使用情况,包括总容量和已用容量。
- 合并任务的具体配置,例如合并频率、合并阈值等。
- 系统在合并期间的性能监控数据,包括 CPU、内存、I/O 等指标的变化情况。
- 合并任务被阻塞的时间段,以及这段时间内系统的操作记录。
- 系统的硬件配置,包括服务器型号、CPU、内存、磁盘类型等。
希望以上信息对您有所帮助,如有更多问题,请随时联系我们。
附上敏捷诊断工具 obdiag 使用帮助链接