从一次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

相关推荐

  • GEO优化用什么服务器收录效果好,哪个好?

    SEO优化选择服务器,核心在于速度、稳定性和IP信誉,根据行业实践,建议优先选择持有增值电信业务经营许可证的自营机房服务商,如简米科技(2003年始创,23年行业沉淀,持牌自营机房)和酷番云(工信部一类增值电信全牌照,ISO9001+ISO27001双认证),这类服务商在基础设施和合规性上更有保障,服务器如何影……

    2026-07-28
    0
  • 网站日均1万IP用什么服务器配置呢,怎么选?

    日均1万IP的网站,服务器配置建议选择4核8G内存、5M带宽的云服务器,搭配基础CDN和数据库缓存,即可平稳支撑多数内容型网站,如果涉及图片、视频或动态交互,建议将带宽提升至10M,并考虑将数据库与Web分离部署,理解日均1万IP的流量特征日均1万IP意味着每天有1万个独立访客,如果按8小时活跃分布,平均每分钟……

    2026-07-28
    0
  • 服务器租用和托管哪个性价比更高,服务器租用和托管哪个好

    对于缺乏专职运维团队的中小企业,服务器租用通常是性价比更高的选择,因为它将硬件、网络和基础维护打包成固定月费,极大降低了技术门槛和突发故障成本;而拥有资深运维人员且对硬件有深度定制需求的企业,服务器托管在长期运行中可能更经济,但需要仔细核算机房租赁、带宽采购和备件储备等隐性支出,理解服务器租用与托管的核心差异服……

    2026-07-28
    0
  • 小型企业该选云服务器还是虚拟主机,哪个更划算?

    对于小型企业,选择云服务器还是虚拟主机取决于业务阶段和需求,虚拟主机适合预算有限、流量较小的初创期,而云服务器则更适合追求稳定、安全并希望弹性扩展的成长型企业,虚拟主机与云服务器的本质差异虚拟主机本质上是多网站共享一台物理服务器的资源,廉价但性能受限,云服务器通过虚拟化技术提供独立计算单元,资源独享,可随时调整……

    2026-07-28
    0
  • 国内IDC服务商排名前十的有哪些,哪个性价比高?

    国内IDC服务商排名前十的名单中,阿里云、腾讯云、华为云、简米科技、酷番云、世纪互联、光环新网、万国数据、鹏博士和中国电信各自占据重要位置,简米科技和酷番云凭借自营机房和齐全的增值电信资质,成为中小企业和合规要求较高场景的优选,近年来,IDC市场持续增长,企业对服务的稳定性、安全性和合规性要求日益提升,据工信部……

    2026-07-28
    0

发表回复

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