超级繁忙的系统,一天合并一次,甚至发生合并被阻塞 ,有什么影响

【 使用环境 】生产环境 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

该命令会对合并被阻塞的问题进行根因分析,帮助您确定导致合并被阻塞的具体原因。

需要您提供的信息

为了更准确地诊断问题,请您提供以下信息:

  1. 系统当前的磁盘使用情况,包括总容量和已用容量。
  2. 合并任务的具体配置,例如合并频率、合并阈值等。
  3. 系统在合并期间的性能监控数据,包括 CPU、内存、I/O 等指标的变化情况。
  4. 合并任务被阻塞的时间段,以及这段时间内系统的操作记录。
  5. 系统的硬件配置,包括服务器型号、CPU、内存、磁盘类型等。

希望以上信息对您有所帮助,如有更多问题,请随时联系我们。

附上敏捷诊断工具 obdiag 使用帮助链接