暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

光不仅在烛上

白鳝的洞穴 2022-08-19
712
王阳明南下平定广西叛乱的途中,遇到了在河岸边静坐的弟子徐越。他见到心学宗师的时候异常激动,向王阳明诉说了他的种种悟道,不过都被王阳明一一否定了。后来王阳明把他唤到自己在江中的座船,指着船中蜡烛上的光芒,问道,“这是光,对吧?”,徐越点点头,王阳明接着指向船舱中空白的地方,“这也是光。”最后,王阳明把手指向江面上为烛光照映的粼波,“这也是光。” 最后王阳明总结说:“你明白了吗?光不仅在烛上!”
看到这里,有些朋友会疑惑了,今天不讲数据库,开始讲王阳明心学了吗?肯定不是的,就心学那点底子,自己都还搞不清楚,更不要说拿来显摆了。我今天要说的还是数据库的可观测性问题。对于数据库国产化,很多朋友还在观望,觉得信创只是昙花一现,终究还是会回到Oracle称霸天下的时候的。不过从现在的国际国内形势来看,暂时还看不到这么乐观的情况。芯片法案为代表的一系列割裂全球化的举措会一步步的割裂这个世界,信息技术领域是重灾区。前两天,很多搞设计的人突然发现,自己的behance账号被封了,哪怕国籍是老外,只要是用中国ip注册的账号都受到了影响。虽然behance离我们DBA还挺远,不过还是值得我们警惕的。如果有一天我们发现metalink账号或者redhat账号被封了,那种感觉和前两天中国的设计师们的感觉应该是差不多的。
空谈数据库国产化的意义没有意义,大家现在很纠结要不要国产化的最主要原因还是国产数据库“不好用”,比不好用更大的顾虑是怕“用不好”。要想用好国产数据库,大幅提升国产数据库的可观测性能力,以及加速积累国产数据库的运维知识二者都是极其重要的。今天下午工信部信通院组织了一场关于数据库可观测性的沙龙,有兴趣的朋友可以关注下这个链接:https://mp.weixin.qq.com/s/jWE1RqMZq36Cody_hm89HA
在下午的沙龙上,我也会分享一个关于数据库可观测性的话题。谈到数据库的可观测性,就回到了“光不仅在烛上”这个题目了。按照王阳明的说法,我们在很多地方都可以看到烛光,我们不必来到王阳明的船舱里,盯着那个烛台,才能看到烛光。在船舱的窗棂边,在江中我们都可以看到。
昨天我看到一个PG数据库故障诊断的案例,大体的意思是数据库遇到了一个莫名其妙的故障,有时候就会报break piple然后会话中止。通过多种方法也找不到原因,最后只能使用GDB去跟踪,最终发现是因为SWAP耗尽导致无法分配内存。增加物理内存或者让SQL语句更简化一些,不要使用那么多内存就可以解决这个问题了。
数据库的可观测性提供了多种渠道来了解数据库的运行状态,指标、日志、跟踪与用户体验。就像王阳明所说的烛光一样,只要能够串起这些光的链条,那么看到任何一处光,我们就能找到源头在哪里。数据库可观测性能力提供给运维人员观察的渠道也是多样的,从日志中发现此类严重故障是最佳的方法,其次是指标中获得,实在没办法才会去用跟踪。
只不过我们现在的国产数据库或者开源数据库在这方面做的和国外商用数据库的差距还比较大。比如今天提的这个案例,如果PG数据库能够学习Oracle数据库的日志报警方式,在报错时不仅仅是列出了当前报错,还针对那些由于某个更低层错误而导致的错误,一层层的把错误堆栈列出来,比如因为OS报错而导致的一个上层错误,除了列出最顶层的错误,也会把最底层的OS的错误信息也输出出来。如果这个案例中存在这样的错误堆栈,那么我们一眼就能够看清楚是内存不足导致了这个问题。也就不需要用GDB这种终极大杀器去分析此类问题了。
此外分析此类问题的方法有很多,直接使用GDB去跟踪代码的行为就好比登上王阳明的小舟,进入他读书的舱室,这并不是任何人都能做到的。看到江中的光影,根据能够收集到的各种信息,通过关联与排除,我们也可以猜测到是王大师夜读,才有了这江上的一点渔火,岂不是更好。
要想实现这种可观测性,首先需要数据库厂商能够把产品做的更好一些,给运维人员更多的信息。其次是数据库厂商也需要更加开放,把这些信息公布出来,让我们的用户都能很方便的获取到这些信息,就像Oracle的METALINK一样。

另外一点就是这些运维知识能够得到充分的总结,如果在书店里能够看到大量的关于国产数据库运维与优化的书籍,那么我们的国产数据库生态才算真正的做好了。我也曾想过去写一本国产数据库优化的书籍,只不过因为资料太过零散,完全无法形成一本书的体系与规模,因此也就只能作罢了。
文章转载自白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论