作者简介

肖力, 资深运维专家,拥有15年运维经验,就职于金山西山居,担任系统运维经理,曾就职于盛大游戏,在运维圈有极大的影响力。国内最顶尖的KVM专家之一,从2009年开始研究KVM技术,是国内较早在生产环境大规模实践KVM的人之一,积累了非常丰富的经验。

热衷于技术传播,一直在无私地为运维领域的发展做贡献,维护有微信订阅号“KVM虚拟化实践”,分享了大量KVM和运维领域的干货内容,同时还运营着多个运维相关的微信群。此外,他还是华章“运维前线”系列图书的总策划,无偿地在组织大量愿意无私分享经验的运维工程师们来参与写作。

作者

肖力(原著)

编辑

叶金荣(文章整理)

内容简介

资深运维专家肖力谈手游业务MySQL虚拟化方案

手游业务MySQL服务特点

目前手游业务大多是采用Redis和MySQL相结合的方案;

Redis则用于游戏业务中当前状态数据的存储,而MySQL一般用于数据持久化存储以及事务控制、数据一致性保证;

手游业务中的MySQL数据库一般负载不高。

正因为MySQL负载不高,才需要想办法提高资源利用率,这里可以有两个思路:

单机多实例;

虚拟化技术。

这两种方法各有优缺点,我们接下来各自分析对比下。

1、单机多实例

在同一个OS下启动多个mysqld进程,监听多个端口。

优点:

计算资源利用率相对较高,因为没有虚拟化层的损耗;

适合中小企业,因为无需额外维护KVM等虚拟化组件。

缺点:

隔离性相对较差,不同业务的MySQL实例间可能会因为业务瞬间突增而相互影响;

定制化相对麻烦,不同实例要使用不同的MySQL版本,操作配置比较麻烦;

不同实例无法都使用默认的3306端口,除非事先绑定多个IP,相对较复杂。

2、虚拟化技术

在每个虚拟机只运行一个数据库实例。

优点:

方便推动数据库部署标准化、模版化,为后续推进快速部署打好基础;

通过虚拟化技术,实现数据库服务快速批量部署,公有云RDS一般也是这么做的;

具备良好的隔离性,一个实例中的OS或数据库故障不影响其他实例下的服务。

缺点:

多了虚拟化层,增加一部分计算资源消耗;

每个虚拟化实例使用单独的IP,网络管理上更复杂;

手游业务数据库虚拟化方案可以考虑KVM结合Docker的方案。

数据库使用KVM虚拟化方案需要关注下面的几个要点:

服务稳定性,业务的稳定是一切基础,再好的方案也不能影响业务的稳定,否则都是耍流氓;

避免性能瓶颈,数据库服务主要的瓶颈在于磁盘I/O,好在手游业务的压力一般不太大。不过上线前也要做足测试,对潜在的性能需求要有预估。遇到高负载时可直接使用SSD或者PCIe SSD设备,在KVM虚拟化中也可将SSD直接以裸盘方式挂载到KVM实例上。

服务可靠性,可从下面两个方面提升服务可靠性:

1)数据库层面,可采用主从复制、定期物理&逻辑备份(全备+差异备份)、备份恢复等机制;

2)虚拟化层面,可采用共享存储、虚拟机快照等。共享存储优先选择企业级存储设备,要注意虚拟机快照并不能保证数据库的完整性。

数据库使用Docker技术

数据库服务基于Docker技术,有效平衡了单机多实例以及KVM虚拟化两种方案,其资源损耗小,又具备虚拟化灵活部署和隔离性等优点。

但当前Docker技术仍有诸多限制:

其使用AUFS文件系统,更容易造成磁盘I/O性能瓶颈(可配置SSD盘缓解I/O压力);

Docker的实例不支持热迁移(可和KVM结合,利用KVM实现热迁移);

Docker的网络模块上也有瓶颈。

上述这些因素决定了目前在Docker里跑MySQL还有待进一步完善,我们也相信随着Docker技术的不断改进,这些限制或者瓶颈会越来越少,更适大规模运行MySQL等服务。

mysql在手游中的作用_手游业务MySQL数据库虚拟化漫谈 | By 肖力相关推荐

  1. mysql在手游中的作用_数据库虚拟化技术_手游业务MySQL数据库虚拟化漫谈 | By 肖力-云栖社区...

    作者简介 肖力, 资深运维专家,拥有15年运维经验,就职于金山西山居,担任系统运维经理,曾就职于盛大游戏,在运维圈有极大的影响力.国内最顶尖的KVM专家之一,从2009年开始研究KVM技术,是国内较早 ...

  2. mysql在手游中的作用_战神引挚手游数据库解析mysql/mir

    mysql/mir库: awardplayer 领养账号 字段: Idx 编号 PTID PTID HumName 人名 Level 人物等级 job 职业 sex 性别 Status 帐号状态 fi ...

  3. mysql在财务分析中的作用_财务分析在企业发展中的主要作用

    一:财务分析的目的 1:掌握企业生产经营的规律.企业的生产经营活动,随着生产的发展.业务量的大小等遵循一定的规律性.不同的行业,对资金的占用.需求遵循不同的规律. 2:了解企业的经营管理现状和存在的问 ...

  4. mysql在财务分析中的作用_财务分析在会计工作中的地位和作用

    财务分析在会计工作中的地位和作用 何 廷 芳 财务分析是会计的一个重要组成部分 , 是会计核算的继续和发展 . 在会计工作 中 , 只有把财务分析做好 了 , 才能体现出会计工作对经济业务的积极作用 ...

  5. mysql断电同步不起作用_记一次mysql主从同步因断电产生的不能同步问题 1236 and 1032...

    背景: 项目新上线一个月,qa需要测试断电服务拉起,服务拉起成功后,发现mysql主从异常 以下是发现的问题以及解决方案 问题1: Slave_IO_Running:  No 一方面原因是因为网络通信 ...

  6. ios开发 多人语音聊天_手游语音市场的现状、机遇与挑战

    文/手游那点事小鱼原创 2014年持续火热的手游市场成就了一大批企业的上市梦,同时也在大环境下产生了对系列手游增值服务的需求.基于玩家对手游社交性的需求,以及借鉴传统端游,页游中成功的社交体系,手游市 ...

  7. 方舟原始恐惧mod生物代码_方舟手游狮鹫怎么训 方舟手游狮鹫怎么训

    2020-11-02 12:01:13 角色扮演 人气值:加载中... 方舟手游狮鹫怎么训?部分玩家不清楚在手游方舟中狮鹫如何驯服,下面带大家了解一下游戏中狮鹫的驯服方法,感兴趣的玩家不妨往下看看吧. ...

  8. 浅谈计算机教学论文,浅谈计算机在教学中的作用_优秀论文

    <浅谈计算机在教学中的作用_优秀论文>由会员分享,可在线阅读,更多相关<浅谈计算机在教学中的作用_优秀论文(5页珍藏版)>请在人人文库网上搜索. 1.浅谈计算机在教学中的作用论 ...

  9. 梦幻诛仙手游服务器信息失败,梦幻诛仙手游闪退怎么办_登陆不了安装失败解决办法_梦幻诛仙攻略_hao76手游网...

    梦幻诛仙手游近日开启了不删档测试,安卓是11月1日,IOS是11月3日,大家在下载或安装游戏的时候可能会出现安装失败或是闪退登陆不了的问题,那么这些问题应该怎么解决呢?下面就和hao76网小编一起来看 ...

最新文章

  1. mysql创建函数1418_Mysql中创建函数报“ERROR 1418 ”的解决方法
  2. MYSQL: DML/DDL/DCL
  3. java 九大行星运行_九大行星运行周期!
  4. android SharedPreferences实现用户的注册和保存账号密码
  5. python中那些鲜为人知的功能特性
  6. leetcode 1189 python
  7. 禁止用户打开控制台调试代码
  8. HDU2548 两军交锋【数学计算+水题】
  9. python基础代码大全-Python基础汇总
  10. 132 MySQL多表查询(重要)
  11. java jpa 教程 查询_Spring Boot JPA 使用教程
  12. 浏览器开发者工具,自己设置屏幕分辨率调试(chrome)
  13. Oracle日志报03113,OracleORA-03113 ORA-600 [4193]故障处理
  14. stata陈强:第十五章 短面板
  15. 计算机生产管理系统培训,{生产管理培训}生产企业审核系统讲义.pdf
  16. qq不能远程桌面连接到服务器,win10系统qq无法远程协助的解决办法
  17. 学习笔记——Parallel Scavenge和Parallel Old
  18. 通用图床服务架构解析(百万级回源/天)
  19. MacM1下使用opencv
  20. python判断阶乘和数_python如何计算数的阶乘

热门文章

  1. html钢琴块游戏源码,好玩的钢琴块游戏
  2. 社区宽带繁忙是什么意思_十年宽带维修工程师给你解读,为什么宽带越用越慢!...
  3. 吊炸天的云原生,到底是个啥
  4. 数字藏品|NFT整个行业的调研报告 数字藏品有价值吗 数字藏品是什么 百度数字藏品
  5. [ctf.show.reverse] 来一个派森,好好学习天天向上
  6. 微信小程序提示:https://api.map.baidu.com 不在以下 request 合法域名列表中
  7. InterviewQuestion
  8. AST实战技巧|使用v神插件动态替换AST还原后的代码
  9. Linux 网卡驱动学习(六)(应用层、tcp 层、ip 层、设备层和驱动层作用解析)
  10. 检查软件下载是否完整 MD5 工具使用 ----- md5sum