首页 > 其他分享 >主备延迟故障分析方法

主备延迟故障分析方法

时间:2024-09-04 18:13:45浏览次数:5  
标签:回放 分析方法 视图 主备 IO redo 延迟

【标题】主备延迟故障分析方法

【问题分类】故障分析

【关键字】Yashandb、主备延迟

【问题描述】当数据库备机出现回放延迟时,需要通过一些手段分析延迟的原因。通过数据库的系统视图或操作系统监控数据可以辅助分析回放延迟的瓶颈。

【问题原因分析】

备延迟手段

当前备库的复制情况


Note:

{rst}{asn}{blockid}

rst:为reset id,每次failover后,数据库新产生的redo文件的reset id会加1。

asn: 归档序列号,archive sequence number,每产生一个redo,ASN会加1,每个redo的ASN不相同。

blockid:redo文件内页面所在ID,页面的偏移量为 block id*block size。

lfn:log flush number,日志序列号,每次redo刷盘,LFN加1。

备机回放进度视图



数据库从MOUNT到OPEN阶段,统计的是重启回放信息,视图中Redo Remain项随着回放会减小。主机OPEN后,视图项不再变化。但是备机OPEN后,可能会重置视图内容,并且Redo Remain项和Remain Time项表示当前剩余日志对应的大小和回放时间。
检查redo的落盘速度

其他辅助分析视图介绍

检查磁盘的IO性能

输出信息说明

Device :磁盘名

rrqm/s :每秒进行的 merge 读数目

wrqm/s :每秒进行的 merge 写数目

r/s :每秒读 I/O 次数

w/s :每秒写 I/O 次数

rkB/s :每秒读设备的字节数(单位:K字节)

wkB/s :每秒写设备的字节数(单位:K字节)

avgrq-sz:平均每次设备I/O操作的数据大小

avgqu-sz:平均I/O队列长度

r_await :每个读操作的平均所需时间(包含列队等待时间)

w_await :每个写操作的平均所需时间(包含列队等待时间)

await :平均每次设备 IO 操作的等待时间(平均响应时间不超过5ms,单位:ms)

svctm :平均每次设备 IO 操作的服务时间(单位:ms)

%util :磁盘繁忙程度(注意:每块磁盘后面都有表示是否繁忙)

如果 svctm 与 await 比较接近,说明 IO 几乎没有等待。

如果 await 远高于 svctm ,说明 IO 队列太长 响应太慢,需要优化,可以从 avgqu-sz 队列长度看出来。

YCM监控主备延迟情况

V23.2.1.100 的ycm可以监控主备延迟,如下图

使用gstack查看线程状态

gstack yasdb进程 > gstack.txt

典型案例

问题单:生产数据迁移完毕后数据库延迟比较大

二线分析文章:《主备日志回放延迟高问题》

IO性能测试工具

标签:回放,分析方法,视图,主备,IO,redo,延迟
From: https://www.cnblogs.com/YashanDB/p/18397112

相关文章

  • MySQL 主从延迟的常见原因及解决方法
    主从延迟作为MySQL的痛点已经存在很多年了,以至于大家都有一种错觉:有MySQL复制的地方就有主从延迟。对于主从延迟的原因,很多人将之归结为从库的单线程重放。但实际上,这个说法比较片面,因为很多场景,并行复制方案也解决不了,譬如从库SQL线程被阻塞了,从库磁盘IO存在瓶颈等。......
  • 03 Windows批处理的作用域和延迟扩展
    在前文中,我们学习了变量、如何设置它们以及如何解析它们的值。在本文中,我将重点介绍setlocal命令,它是批处理中非常重要的、具有不同特性的核心内容,它可以何时、何地以及如何处理变量。首先,它定义了作用域:在何处以及何时可以访问和操作这些变量。其次,它启用了一个称为延迟扩展的特......
  • Win11 / Win10 系统极化工具,降低游戏延迟效果明显
    Win11/Win10系统优化工具,降低游戏延迟效果明显Windows系统优化就是精简系统一些功能组件、对一些系统功能进行设置等,这样可以减少不必要的硬件资源占用。全面的系统优化功能外,据不少网友表示通过优化后CSGO游戏降低输入延迟效果明显。免费下载地址:https://yun......
  • [oeasy]python0032_ 火星文字幕_os_操作系统的作用_time_sleep_延迟
     032导入_import_os_time_延迟字幕效果_道德经文化_非主流火星文154播放·0赞同视频​ show:stepversion:1.0enable_checker:trueHelloWorld!回忆上次内容这次我们了解了unix系统在multics项目失败后汤普森和里奇为了玩游戏自制了u......
  • Redis高可用方案:使用Keepalived实现主备双活oZ
    注意:请确保已经安装Redis和keepalived,本文不在介绍如何安装。1、使用版本说明Redis版本:5.0.2Keepalived版本:1.3.5Linux版本:Centos7.9查看Redis版本:/usr/local/redis/bin/redis-cli-v查看Keepalived版本信息:rpm-qa|grepkeepalived或者keepalived-v2、功能实......
  • Redis高可用方案:使用Keepalived实现主备双活
    注意:请确保已经安装Redis和keepalived,本文不在介绍如何安装。1、使用版本说明Redis版本:5.0.2Keepalived版本:1.3.5Linux版本:Centos7.9查看Redis版本:/usr/local/redis/bin/redis-cli-v查看Keepalived版本信息:rpm-qa|grepkeepalived或者keepalived-v2、功能实......
  • Redis高可用方案:使用Keepalived实现主备双活
    注意:请确保已经安装Redis和keepalived,本文不在介绍如何安装。1、使用版本说明Redis版本:5.0.2Keepalived版本:1.3.5Linux版本:Centos7.9查看Redis版本:/usr/local/redis/bin/redis-cli-v查看Keepalived版本信息:rpm-qa|grepkeepalived或者keepalived-v2、功能实现......
  • 利用 Redisson 实现延迟消息队列:一种高效订单取消方案
    文章目录一、发送延迟消息:定时触发订单取消二、监听延迟队列:自动处理过期订单三、取消订单的实现逻辑四、总结在电商平台中,订单生成后如果长时间未被处理,我们通常需要自动取消这些订单。这种需求不仅能够提升用户体验,还能有效管理库存和资源分配。而如何实现这一需......
  • Redisson分布式延迟队列
    Redisson是一个基于redis实现的Java驻内存数据网格,它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。Redisson除了提供我们常用的分布式锁外,还提供了一个分布式延迟队列RDelayedQueue,他是一种基于zset结构实现的延迟队列,其实现类是RedissonDelayedQu......
  • JDK延迟队列 DelayQueue
    DelayQueue是JDK提供的一个无界队列,我们可以看到,DelayQueue队列中的元素需要实现Delayed,它只提供了一个方法,就是获取过期时间。用户的订单生成以后,设置过期时间比如30分钟,放入定义好的DelayQueue,然后创建一个线程,在线程中通过while(true)不断的从DelayQueue中获取过期的数据。......