从一次Oceanbase数据库优化谈起

上星期感觉我们实验室的一套OCEANBASE 4.2.1的环境突然变得特别慢,在没有什么负载的时候连接数据库和执行SQL都比以前慢数倍。想去分析其原因,不过总是觉得不知道该从哪个地方开始排查,因为服务器的负载也很低,没有任何存在瓶颈的迹象。

在搞Oracle数据库优化的时候,虽然分析复杂问题也挺头痛的,不过Oracle的各种工具以及丰富的可观测性接口总能让人觉得分析问题有一种酣畅淋漓的感觉。本人在Oceanbase上也是一个新手,再加上在网上的OB运维经验与运维知识也不如Oracle丰富,因此对于复杂问题的分析总觉得有点力不从心。

最近一直在做D-SMART OB专版的发版前的冲刺工作,我觉得如果利用D-SMART如果无法把这个问题解决掉,就无法体现知识自动化的能力,因此我还是想找个时间利用工具链去排查一下系统存在问题的原因。

前天上午想给实验室的OB加点压,从采集一些TOP SQL来测试SQL审计的功能。启动压力测试后发现TPMC居然只有400多,往常这个脚本起码能跑倒3-4万。通过D-SMART简单分析了一下,发现半夜2点多开始的merge还没完,因此就简单的把问题归结为MERGE的问题了。中午吃完饭回来发现Merge结束了,不过OB集群的性能还是不好,看来我以前的猜测并不准确。于是我又发起了一个Merge操作,在OCP上看到MERGE持续进行,不过依然很慢。

图片

从D-SMART的“OB合并情况分析工具”可以看到确实有两个任务正在进行MERGE。不过再往下分析就遇到了问题。

图片

查看当前merge任务明细的时候,发现数据是空的,找不到正在进行的Merge工作。118节点上的MERGE操作一直处于等待状态,长时间没有任何变化。因为手头还有其他 事情,所以就没有持续跟进了。昨天早上到公司发现那个持续时间很长的MERGE完成了,从OCP上查看,发现MERGE总共做了13个小时。

图片

我也把我的问题发到了一个Oceanbase交流的群里,咨询了一些OB的资深用户,在他们的指导下我检查了一些性能视图,不过我看到这些视图都是空的,还是无法定位问题。不过通过和他们的交流,我逐渐缩小了分析问题的范围。终于把问题定位到了日志流复制不同步的问题上了。当某个日志流不同步的时候,实际上MERGE在等待日志同步完成,因此看不到当前Merge线程的工作内容,但是线程还是处于run状态。如果这个日志流日志同步了,那么在GV$OB_TABLET_COMPACTION_PROGRESS就可以看到MERGE线程在干活了。

图片

至此,这个问题已经能够定位到日志流同步延时导致了MERGE的问题,不过实际上这个问题还是没有解决,因为哪怕日志流同步了,Merge完成了,还是无法恢复系统的性能。

图片

确实,针对这个情况如果不解决日志流追了13小时才追平的问题,应该是无法解决当前这个性能问题的。于是我仔细思考了整个故障的过程。因为性能问题持续存在,所以只要系统加压一段时间,日志流同步的问题一直存在。经过多次测试,我发现总是118节点出现日志流不同步的问题,其他节点并没有出问题。这三个节点的PC SERVER配置是完全相同的,而且也并没有哪个服务器的负载有问题。

图片

图片

从目前的情况看,只能继续分析三个节点的操作系统有何不同了。通过D-SMART的操作系统诊断工具发现,118服务器的sys%经常会比较高,压测一旦开始就超过20%,其他节点都很正常。这是一个十分明显的疑点,不过到此为止我们的工具已经无法继续往下提供下钻能力,必须依托操作系统的工具了。在这种情况下,perf是一个十分好的分析工具,它可以提供的内核调用情况可以很好的分析sys cpu较高的问题。

图片

perf top命令的输出展现在我面前的时候,我就恍然大悟了。acpi_pm_read,这个最近一直困扰我的系统调用,一下子就激活了我的大脑-这应该是clocksource的设置问题。    

图片

主机时钟源日检告警我以前是看到过的,只不过没有和这个性能问题挂钩而已。实际上D-SMART的日检已经给了我这个问题的答案,只是我没有去关注它而已。

图片

根据上面的分析过程,我们重新梳理了诊断工具。通过“查询合并情况”工具进入诊断。

图片

    

针对正在进行合并的作业,点击“合并信息”可以下钻查看当前正在做哪些合并工作。

图片

如果下钻进去发现当前并没有正在进行合并的对象,那么说明当前的合并作业正在等待什么前置条件。日志流同步是一种常见的可能原因。

图片

点击下钻可以看日志流同步的情况,如果向系统存在性能问题的时候一样,日志流确实处于异步状态,那么就可以继续下钻去分析当前系统clocksource设置的情况。

图片

至此整个分析实现了一个闭环。完成工具的优化后,整个分析过程似乎又找到了一点当年分析Oracle故障时的流畅感觉。    

图片

通过D-SMART内部的一个应用访问性能探针指标可以看到优化前后十分明显的效果。底下那根曲线是今天早上的,而那根波动十分明显的曲线是两天前系统存在问题的时段,比对时段系统都是没有任何负载的。

图片

现在来复盘这个问题似乎整个查找过程十分流畅,但是在实际解决这个问题的过程中是不连贯的。这种不连贯来自于两方面的原因,一方面是因为OB的性能分析,故障诊断的知识的缺乏。当OB数据库出问题的时候,缺少能够指导我们一点点排查问题的工作指南,甚至很多OB的性能问题,OB原厂的同学都没有遇到过或者总结分析过,因此很多问题就变得很神秘了。

另外一方面原因是OB的等待事件的可观测性太差了。大家可以看到上面的那个等待事件是系统存在性能问题时采集到的,下面的等待事件是我正在写这篇文章时采集到的的。    

图片

从二者我们无法看出明显的区别,因此我们也无法通过等待事件来缩小问题分析起点时的排查范围。Oracle数据库的等待事件做得很优秀,遇到系统问题,我们一般先看等待事件,就可以大致明确方向,缩小分析范围,很快步入正轨。正是因为OB的等待事件还不够完善,导致了其实用性远没有Oracle的好,因此问题分析的入口就变得更为复杂了。希望OB的同学能够在后续的版本中加速优化等待事件。

最后要和大家分享的就是关于时钟源的事情,对于单机数据库,时钟源可能也会引起一些性能问题,不过绝对没有分布式数据库那么明显。因为分布式数据库多节点的时间协调更为频繁。因此要确保所有的数据库服务器、复制服务器、连接数据库的中间件服务器等都是用相同的时钟源的。而对于目前最常见的三种时钟源:tsc、hpet、acpi_pm,tsc是首选,acpi_pm是最差的选择。一般情况下,在使用分布式数据库的时候,这些服务器的时钟源必须都设置为tsc。    

图片

昨天我表示要关于这个问题写一篇文章的时候,讯飞的戴明明老师给我发来一个他们的经验,也是与OB的时钟同步相关的,当OB数据库的服务器节点的时钟同步存在问题的时候,在OCP中添加主机因为OCP服务器与需要添加的主机之间时钟不同不问题,导致任务失败。配置ntp统一时钟后,问题才消失。当时钟源设置不统一的时候,时钟同步问题是持续存在的,戴老师遇到的这个问题在这种情况下也会遇到。

时钟同步问题与时钟源问题不仅对OB是十分重要的,对于其他分布式数据库依然重要。对于今后要使用分布式数据库的同学,建议用小本子记下我今天分享的这个案例。    

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/253335.html<

(0)
运维的头像运维
上一篇2025-04-29 20:45
下一篇 2025-04-29 20:46

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注