在互联网游戏领域,新老游戏在各大平台每时每刻都更替着,如何命中游戏市场要害,并占据领先位置,游戏开发者们在其中起到了关键性作用。在今年 7 月 18 日 -19 日的 ArchSummit2014 大会上,多位讲师将针对如何快速开发游戏,避免技术陷阱等问题纷纷献计献策。
在 ArchSummit 开始之前,InfoQ 邀请上海江游技术总监刘其炎(往期视频:网页游戏的云计算架构)和江游运维负责人许治坤,从游戏架构设计、OpenNebula 云平台运行这几个方面分享了一些自己的观点,采访内容如下:
InfoQ:请您介绍下 2014 年上海江游的规模,并请简单介绍一下您目前的工作和关注的领域。
刘其炎:江游现在有 300 左右的员工,一共有 9 个项目,其中 4 款手游,5 款页游。我目前的主要工作是负责我们事业部的技术,以及公司所有技术的整合,新人的培训等等。我比较关注的领域是 MySQL、PHP、Nginx、游戏服务器架构等。
InfoQ:今年,针对《街机三国》的服务器架构,以及升级自动化工作方面,是否遇到了新的问题,又是如何解决的?
刘其炎:主要是之前设计的比较稳定,再加上今年各平台对街机的推广已经没那么多了,所以基本上没有出现很多新问题。
InfoQ:针对游戏服务器开区、开服的问题,从架构设计角度是如何考虑的?是否有过负载过大导致宕机?
刘其炎:这个还是我讲座里说的,主要还是从产品,从客户的角度去设计架构,不要过度设计。因为我们开始的时候就考虑到了页游的生命周期,所以尽量的保证服务器的可平行扩展性,所以没有出现过负载过大而导致的宕机。
InfoQ:从事游戏服务器架构设计这些年,您最大的感悟是什么?
刘其炎:最大的感悟就是:一切以产品为中心,不要过度设计。没有最好的架构设计,只有最适合的设计。
除了游戏架构之外,关于上海江游云平台运行方面的问题,InfoQ 请江游负责运维工作的许治坤也谈了一些自己的体会,以下为采访实录:
InfoQ:游戏的特点是单服务器负载增高后直接用开新服来解决。这是否意味着游戏运维不需要考虑应用的扩展性问题?
许治坤:开新服就是扩展。开服合服是游戏的特性,开发阶段运维及早介入,共同讨论解决游戏服务端框架扩展性问题对后期运营会有很大帮助,否则很可能只能在下一个游戏里解决了。其炎在设计街机三国服务端框架就吸取了我们前一个游戏的很多惨痛教训而做的修改。
InfoQ:您在上次的分享中提到曾经尝试过 SSD Cache+SATA 盘的方案,但是因为写穿透的压力还是太大,所以后来换成了纯 SSD 的方案。能否用数据(比如写入的 IOPS、速度等)描述一下当时你们遇到的压力,以及当前方案的运行状态?
许治坤:具体数据现在有点忘了,游戏活动高峰写入 IOPS 大概有 3000-4000。Flashcache 技术对大量读的操作有很大作用,对大量写只能是缓冲一下,因为最终还是要写到后面的硬盘,我们当时 slave 用的是 SSD + SAS15k*6(Raid 10) ,还是跟不上,马上就放弃用独立 SSD。用独立 SSD 还经常出现 slave 滞后的问题,因为 MySQL 5.6 以前的 slave 不支持多线程写,记得当时的 MySQL 5.6 slave 多线程写还有内存泄漏的问题,给 MySQL 提交了 bug,前几个月刚解决。
InfoQ:有没有考虑过将 MySQL 换成 NoSQL 方案?
许治坤:没有,游戏上线后开发压力大的不可想象,因为每周都要出一个版本。关于上面 mysql 写压力大的问题,我们通过 splunk 采集回放 binlog 统计 SQL,发现游戏的一个刷战魂操作在每天 SQL 语句写操作中占了 50% 多,后来开发加了一个一键刷战魂的功能,一下子就降到 30%。所以找最简单的解决方案,能解决问题就行。
InfoQ:你们现在好像是 OpenNebula 私有云、腾讯云、AWS 都在用,是不是平时主要跑在自己的云上,量大的时候往腾讯云上开服,海外用户则使用 AWS?
许治坤:某些云平台厂商有一阶段老升级内核,更过分的是还把内核模块禁用掉,害的我们的 glusterfs 跑不起来。
InfoQ:您这套私有云环境自身的研发、升级过程是怎样做的?万一平台自己升级遇到故障了怎么办?
许治坤:如果没有严重安全问题、没有特别性能提升或特需功能,为什么要升级?运维最重要的是稳定。
InfoQ:还有什么其他的技术话题可以分享?
许治坤:我们正在测试 docker,后续游戏产品会转到 docker 上来。
ArchSummit 全球架构师峰会即将于 7 月 18-19 日在深圳举行,此次会议重点解析九个当前最受关注的领域,包括:SNS、移动互联网、金融、大数据、智能硬件、游戏、云计算、自动化运维、电商等专题。目前正在火热报名中,感兴趣的读者可以访问网站主页了解更多信息。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论