GitLab 触发“脑裂”问题,5 台 PostgreSQL 3 台彻底趴下

Posted OSC开源社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GitLab 触发“脑裂”问题,5 台 PostgreSQL 3 台彻底趴下相关的知识,希望对你有一定的参考价值。


在一起典型的故障事件中,GitLab 无意中触发了数据库故障切换,因此降低了性能。


由此引发的“脑裂问题”让这家代码收集网站试图靠单一台数据库服务器 postgres-02 来服务广大用户,同时竭力恢复另外三台数据库服务器。


这个问题最初出现在美国时间周四凌晨 1:30 左右


GitLab 触发“脑裂”问题,5 台 PostgreSQL 3 台彻底趴下


翻译如下:


由于数据库负载,我们目前正在调查 GitLab.com 上的性能下降和错误。


意外的故障切换被触发后,亚历克斯•汉塞尔卡(Alex Hanselka)写道,虽然服务器群“继续追随真正的主服务器”,但这起事件引起了不小的麻烦:


由于 postgres-01 是出岔子的主服务器,我们关闭了它。我们在调查时发现,postgres-03 和 postgres-04 都试图追随 postgres-01。正因为如此,我在写这个问题单(issue)时,我们正在 postgres-03 上重构复制内容,完成后又在 postgres-04 上重构复制内容。


GitLab 触发“脑裂”问题,5 台 PostgreSQL 3 台彻底趴下


影响性能的还有备份(由于故障切换之前没有完整的 pg_basebackup,所以需要备份);由于 Sidekiq 集群导致庞大的查询,GitLab 只好关闭了该集群。


问题刚出来时就是这个情况:近20个小时后,故障工单还没有完结。


一开始,postgres-03 的备份以每小时 75GB 的速度执行,直到 23:00 后才完成。仍有其他数据库任务需要完成,但是从安德鲁•纽迪盖特(Andrew Newdigate)的帖子来看,性能开始恢复正常。


GitLab 触发“脑裂”问题,5 台 PostgreSQL 3 台彻底趴下


自 21:30 UTC 以来,持续集成/持续交付(CI/CD)队列恢复常态。现在管道以平常的速度来加以处理。


这里还附有时间表:https://docs.google.com/document


至少备份奏效了:2017年2月,备份故障让数据复制错误雪上加霜:“所以换句话说,在部署的5种备份/复制方法中,没有一个可靠地运行或一开始就设置好。”


在一台登台服务器(staging server)上发现了丢失的数据;作了深刻的反复之后,营销副总裁蒂姆•安格拉德(Tim Anglade)告诉IT外媒The Register,他深知GitLab的重要性,这是“对许多人的项目和公司来说很重要的网站。”


不得不说,切实有效的备份真的很重要。


来自:云头条


GitLab 触发“脑裂”问题,5 台 PostgreSQL 3 台彻底趴下


推荐阅读






点击“阅读原文”查看更多精彩内容

以上是关于GitLab 触发“脑裂”问题,5 台 PostgreSQL 3 台彻底趴下的主要内容,如果未能解决你的问题,请参考以下文章

GitLab安装和配置(Docker)

GitLab安装和配置(Docker)

GitLab安装和配置(Docker)

解决Lvs+keepalived出现双VIP,即脑裂现象

持续集成学习11 jenkins和gitlab集成自动触发

如何将值传递给 Gitlab CI 作业