git迁移MySQL数据库_GitHub如何通过迁移MySQL数据库提高网站性能

news/2024/5/19 1:34:00/文章来源:https://blog.csdn.net/weixin_31759799/article/details/113141143

GitHub,作为广泛使用的开源代码库以及版本控制系统,其数据库MySQL性能的优劣对整个网站平台有着举足轻重的影响。接下来我们一起跟随GitHub基础架构团队的步伐,来重温去年8月做的一次重大MySQL更新,看是如何使得GitHub运行得更畅顺的。

任务简述

自去年开始,我们陆续地把GitHub主体架构迁移到新的数据中心,与之配套的是世界级的硬件和网络环境。我们十分希望这次升迁对后端系统基石MySQL的性能也有所提高。不过在一个新环境重新建立一个新的服务器集群和硬件平台,并不是件轻易的事情,我们必须做好计划与测试,确保迁移工作顺利完成。

准备工作

每当要进行类似的重大升级工作,对每个测量和指标量度步骤都会提出严格的要求。为新机器安装好操作系统后,接下来需要根据不同的配置来进行测试。为了得到真实的负载测试数据,我们使用了tcpdump对从旧集群系统到新系统执行的SELECT查询进行抓包分析。

MySQL性能调整可谓是细节决定成败,例如众所周知的innodb_buffer_pool_size的设置,对整体有着举足轻重的影响。为了尽更全面地管控升级过程,我们把 innodb_thread_concurrency、innodb_io_capacity、innodb_buffer_pool_instances等参数也一并进行分析和研究。

每次测试时我们都只改变某一个参数,然后让系统连续运行至少12小时。在这过程中不断观察SHOW ENGINE INNODB STATUS带来的统计信息,其中SEMAPHORES栏目,能很好地反映工作负荷竞争情况。当相关设置测试通过后,接下来我们将尝试把其中一个最大的数据表迁移到一个单独的集群上。作为前期测试的一部分,这样的迁移工作能为日后更大更核心的变更带来指引。

除了对基础硬件部分进行了升级,我们还对流程和拓扑进行了优化。例如:延后复制,更快速和高频的备份,提高备带读取能力。一切就绪后,将进入最后的升级阶段。

制定升级项目清单,进行二次检查

作为每天服务上百万用户的平台,任何差错都将是毁灭性的。我们在进行真实切换前,列出了一个任务清单,确保各项工作有序执行:

确保缓冲池在新集群中成功预热

在推特等社交平台公告维护开始

把网站转为维护等待模式

等候所有与旧MySQL服务器相关的通信终止

把旧服务器设为只读模式

从旧集群中移除主要和复制的VIPs数据

确认所有写入操作已经终止

终止cluster1的复制

获取cluster1复制的位置,并告知当前线程

重置cluster1的复制

关闭cluster1的只读模式

把旧集群连接到新的cluster1集群

按照cluster1连接配置进行应用程式部署

确保新连接能通过新集群

检查后台工具resque的任务(workers)

进行阶段检查并确保一切正常

把网站转为正常模式

在推特等社交平台公告维护结束

迁移当天

在周六的上午5点太平洋时间),团队成员就位后,迁移工作正式开始。当用户在这段时间访问网站时,会收到如下的提示:

b35e615fd7a7b7d7c57fb6cb2aed9fae.png

13分钟后,新集群即将开始正常运作。我们终止了网站的维护模式,并告知大众网站将回复正常。

4b4c2ea8e7de54cedc5c3b22f7dfe446.png

效果评估

在接下来的几个星期,我们密切关注了整体性能和响应时间方面的变化。结果是令人欣喜的,页面载入时间减少了将近三分之二:

cb7577559f571ad82626c4a034740502.png

经验总结:

1. 功能划分

在本次操作中,我们把较大的历史数据记录表放入单独的集群,事后证明这是明智的做法—很好地释放了存储空间和缓冲池空间。同时,能够把更多资源放在活跃数据处理上,连接逻辑的划分也使得程序可以在多个集群间进行查询。以后我们还将采取该方法进行升级。

2. 不断测试

罗马非一天建成,整个过程需要不断进行验收和回归测试,避免意外的发生。

3. 团队的力量

如此重大的架构升级需要很多小伙伴协力工作,我们主要使用GitHub上的拉请求功能来进行互动交流。部署团队来自世界各地:

46f86d598449e4842667b6c5f70f4dea.png

当开启一个拉请求后,我们将进行实时交流,例如:错误处理,回归处理等信息的交流。每个交流环节都生成一个URL,方便进行历史查询和反馈。

一年后……

路遥知马力,一年后,实践证明这是一次成功的操作。MySQL持续表现符合预期,系统可靠性进一步提高。还有个附加好处是:新系统的扩展性得到提升,将来可进行更大规模的升级和改造。

GitHub 教程系列文章:

GitHub 的详细介绍:请点这里

GitHub 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_825680.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

域名跳转劫持源码_网站劫持问题,网站劫持问题是什么意思?怎么才能解决?...

网站劫持是目前黑产最喜欢的一种网页引流方式,此手法往往通过政府、教育机构网站(权重高),修改网站源代码、放寄生虫程序、设置二级目录反向代理等实现。网页劫持可以分为服务端劫持、客户端劫持、快照劫持、搜索劫持等等&#xf…

ckks方案优化最好的_网站优化有什么好处?角点科技告诉你网站优化的好处

网站优化对往网站有什么好处?在这个互联网时代,网站已经成为了我们生活中非常重要的东西了,网站的出现方便了我们的生活,同时也给很多人带来了收益。网站建设出来才算是一个开始,想要让一个网站获得更多的浏览量就要对…

网站内容 分享/转贴 到sns 开心.人人.微博...

1) 第三方插件a )bshare.cn 一个强大的网页分享插件,可以将您喜欢的博文、新闻等内容快速分享、转贴到社群网络上。 网站地址: http://www.bshare.cn/index 使用条款: http://www.bshare.cn/terms插件样式可自定义问题: bshare窗口是一个div,会被flash的div覆盖…

做网站不买服务器百度能搜到,做网站教程:哪几种链接是不会被百度抓取的

做SEO的同学都知道友情链接可以很好的引蜘蛛,但是偏偏有一些站长就是喜欢在友情链接上做手脚,这里列举常见的作弊手段,大家可以在交换友情链接的时候防范一下。作弊一:robots文件屏蔽链接对方网站robots屏蔽了所有的友情链接或者你…

租传奇手游服务器网站,传奇手游服务端

传奇手游服务端2020最新发布的手游,一上线就被千万兄弟下载,想玩好玩刺激的,传奇手游服务端满足你的梦想,赶快来试试吧。传奇手游服务端是一款拥有多种职业玩法的的经典之作,自始至今,仍然有很多玩家都为此…

java小说目录提取_中文编程,用python编写小说网站爬虫

更多中文编程推广过程内情, 请关注“用中文编程”微信公众号.作者:乘风龙王原文:https://zhuanlan.zhihu.com/p/51309019为保持源码格式, 转载时使用了截图. 原文中的源码块为文本格式.我比较喜欢看小说,在网络上看小说一般有2种选择&#xf…

VS2010 Web网站发布详解

对VS2010来说,发布Web是一件相当容易的事情,也许就是这个原因导致网上关于发布网站具体细节的资料很少。然而这些正是初学者所需要的,下面我详细介绍一下Web网站发布的具体过程。 第一步:在解决方案资源管理器中右击Web应用程序名…

在PC上测试移动端网站和模拟手机浏览器的5大方法(转)

一、Chrome*浏览器 chrome模拟手机总共有四种方法,原理都一样,通过伪装User-Agent,将浏览器模拟成Android设备。以下标星的为推荐方法。 1.新建Chrome快捷方式 右击桌面上的Chrome浏览器图标,在弹出的右键菜单中选择“复制”&…

ArcGIS最权威、最专业的技术分享网站:积思园(www.iarcgis.com)

你对iArcGIS.com说点什么 为什么会有该网站的产生 在这个所谓的“大数据”的时代,每个人都深陷于海量信息无法自拔,因为过多碎片化的数据只会让自己的思维更加迷离,快餐式的阅读只会让自己变得虚胖。iArcGIS.com团队正在试图以工匠精神把最纯…

WordPress优化:6种方法加快WordPress网站运行

WordPress作为一个平台,本身具有非常良好的编码,性能也不错。 但是有些人选择WordPress建站后,总喜欢装一大堆拖慢网站速度的垃圾插件,然后选一个垃圾的虚拟主机。当然,即使你没有在自己的WordPress网站上面做一些傻逼…

CentOS服务器安装宝塔并搭建网站

前言: 买了个Linux服务器,今天决定试试宝塔面板 建立图形化界面: 为了方便我们的使用,我们先给Linux服务器创建图形化界面,我这里是CentOS7.4 首先先用命令给yum升级: yum -y update 然后安装“X Wind…

在你的网站、浏览器中集成3D模型预览功能,使用开源项目Online3DViewer

开源项目Online3DViewer # 通过url参数形式预览模型 https://3dviewer.net/#[3D模型URL]Online3DViewer 是一个免费、开源的web解决方案,可以让我们在浏览器中探索和扩展3D模型。 支持文件类型 导入 obj (with mtl and texture)3ds (with texture)stl (text and …

优秀网站收集

日常生活或工作总免不了搜索引擎寻找资料。 以下推荐些近期发现的“推荐APP或网站”类型好用并且持续活跃更新的网站,再次也算做个记录,后期想找资料时可以重翻阅此篇随笔。 1. egouz 分享互联网优秀资源-国外网站推荐,目前收录国外网站 1443…

创建自己的专属网站的简要流程

创建一个自己专属的网站途径有两个:第一,借助网络服务公司快速建站,直接在搜索器上输入“快速建站”就可以得到很多快速建站的网站,如图1。选择其中一个品牌,注册好了就会有模板,而且大部分支持自定义域名。…

linux网站宝塔无法访问ipv6,centos7宝塔面板服务器开启纯IPV6访问

随着互联网世界日新月异的发展,ipv6好像已经成为一种必不可少的趋势,但是当前国内机房大部分还不能支持ipv6,腾讯云亦如此。同时,现在有部分程序在服务器上运行的时候,需要服务器能监听一个ipv6地址才行,因…

指的是什么意思_SEO是指什么意思?怎么做好SEO优化?

现在随着移动互联网时代的迅速发展,越来越多网络平台上的竞争越来越激烈。所以,很多企业想要获得较好的转化,都需要借助有效的方法进行推广,而在网络上推广想要获得较好的效果,需要优先提高自身网站的搜索结果&#xf…

网站功能操作分布引导插件:Intro.js介绍;React里如何使用Intro.js以及如何进行分页导航...

插件作用:使用向导,引导新用户正确使用Web网站。我的环境是ReactMobx。 基本使用介绍,参加代码地址里的README.md:https://github.com/usablica/intro.js 安装:npm install intro.js --save 在项目里的app.js里引入css…

MOSS2007工作组网站使用:向WSS网站中添加新闻

11.2 “通知”功能—向WSS网站中添加新闻 一个公司的网站可能最常用的功能就是在网站上发布一些文字性的东西,但作为一个网络管理员的你可能并不是一个专业的网页技术人员,所以在以前,网络管理员想要发布一条通知可能还要求助于公司或单位的网…

自己写的网站非常好,却不会展现给别人? 简直是英雄无用武之地啊!!! 来看这里 超详细教程教你部署网站!!!

大家在学习写网站的时候是否有着这样的经历——哇塞我写的网页真好看,好想让她(他)看看,但是苦于不会部署自己的网站,只能靠自己截图或者录视频给别人看,但是截图或视频又不能很好的展现你这个网页究竟写得…

SEO中文书签资源

为什么80%的码农都做不了架构师?>>> 以下是pagerank从0-8的书签资源,下载地址:SEO中文书签资源 (非此图,实在找不到中文的图) 色界频道——这里有顶尖的摄影大师,也有摄影爱好者,他们用相机收纳…