红帽白皮书新鲜出炉!点击获取,让你的云战略更胜一筹! 了解详情
写点什么

页游架构设计与云平台运行

  • 2014-07-04
  • 本文字数:1892 字

    阅读完需:约 6 分钟

在互联网游戏领域,新老游戏在各大平台每时每刻都更替着,如何命中游戏市场要害,并占据领先位置,游戏开发者们在其中起到了关键性作用。在今年 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 )关注我们,并与我们的编辑和其他读者朋友交流。

2014-07-04 02:302298

评论

发布
暂无评论
发现更多内容

跟着卷卷龙一起学Camera--AF

卷卷龙

ISP 9月月更

【C语言深度剖析】深入理解const的用法(趣味小故事解析)

Albert Edison

指针 C语言 const 9月月更

为什么Vue中的v-if和v-for不建议一起用

达摩

Vue

Elasticsearch聚合学习之三:范围限定

程序员欣宸

elasticsearch 9月月更

腾讯前端一面常考面试题合集

loveX001

JavaScript 前端

软件测试 | 测试开发 | 接口测试项目实战与经典面试题解析,挑战 BAT 大厂必会!

测吧(北京)科技有限公司

测试

面试突击83:什么情况会导致@Transactional事务失效?

王磊

Java 面试题

关于运维监控系统实践中的一些tips

穿过生命散发芬芳

监控系统 9月月更

[Go WebSocket] 多房间的聊天室(六)为什么要加锁?不加锁行不行啊?

HullQin

Go golang 后端 websocket 9月月更

C++学习---cstdbool和cstddef源码学习分析

桑榆

c++ 源码阅读 9月月更

Java知识点锦集1

喜羊羊

9月月更

MFC框架下,加密图片加载并显示功能

中国好公民st

c++ 加密 9月月更

渡过“寒冬”,看云原生数据库如何助力企业降本增效与持续创新

亚马逊云科技 (Amazon Web Services)

数据库 云原生

前端高频面试题汇总(一)

loveX001

JavaScript 前端

2022年区块链金融场景化应用专题分析

易观分析

区块链 金融

从0到1开发微信小程序(3)—小程序框架配置

微信小程序专栏

数据库的schema与数据类型优化

阿柠xn

数据库 sql 高性能 优化技巧 9月月更

从0到1开发微信小程序(2)——开发第一个小程序

微信小程序专栏

2022-09-14:以下go语言代码输出什么?A:0 0;B:0 1;C:1 1;D:1 0。 package main func main() { println(f(1)) } func

福大大架构师每日一题

golang 福大大 选择题

【精通内核】Linux内核写锁实现原理与源码解析

小明Java问道之路

读写锁 锁降级 Linux内核 9月月更 锁唤醒

敏捷Scrum实施落地中的3大典型问题及解法

PingCode

前端二面必会面试题(附答案)

beifeng1996

JavaScript 前端

关于数据仓库的特点及组成的概述

阿泽🧸

数据仓库 9月月更

图系列算法在转转推荐算法召回及粗排的实践

转转技术团队

深度学习 推荐系统 图算法 graph embedding

数据结构与算法 之线性表

喜羊羊

9月月更

Java知识点锦集2

喜羊羊

9月月更

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v5.0版已发布

JackJiang

Netty 即时通讯 im开发 开源im

从0到一开发微信小程序(1)——申请账号并安装开发环境

微信小程序专栏

C/C++生态工具链——gcc/g++编译器使用指南

独立开发者_CoderZZ

c++ C语言 GCC g++ gcc 编译器

Java进阶(二十二)使用FileOutputStream写入文件

No Silver Bullet

9月月更 FileOutputStream 写文件

OKR之剑·理念篇01: OKR带给我们的改变

vivo互联网技术

OKR 目标管理 研发管理

页游架构设计与云平台运行_数据库_景琦_InfoQ精选文章