网络游戏服务器性能

以下的讨论都是基于多进程或者单进程,但是进程内线程肯定只有1个。
服务器性能指标最重要的是服务器的最高在线人数,一般而言,页游达到1500+基本没啥问题了,在线人数峰值一般出现在刚开服到量瞬间,之后在达到峰值前,就会开I新服,一般在开服1个小时内达到,可能15分钟就能达到,然后会开新服,压力就慢慢小了。

如果开服时间在晚上8点左右的话,会更快,所以一般而言,为了提升服务器同时在线人数,主要集中提升前1个小时的逻辑简化,甚至是前半个小时的逻辑简化,尽量让客户端多处理,比如不合法的请求,客户端就否定掉了

对于服务器而言,主要压力在于数据库压力和cpu压力,一般而且主要是数据库压力

数据库压力,解决办法是

使用逻辑缓存,数据库服务器使用的磁盘性能,开大数据库的缓存内存占用,以及其他数据库的性能优化参数

之前遇到过的在线特别低,结果发现时运营商提供的磁盘阵列有问题,所以各位大大如果发现数据库刷库慢,可以使用sysbench查看下磁盘的随机读写速度
注意slowsql,是不是有部分sql语句写的有问题
很多运营公司有专门的DBA,有专门呢的数据库性能监测,也会提供优化意见,所以最好找一家大的靠谱的运营商

cpu压力解决办法,

1对于脚本,打开jit,之前服务器使用luajit,但是没有打开jit,自从打开了jit后,性能彪彪的提升啊,但是luajit的基本只能运行在2,如果到3或4,很容易就崩溃了,2一般能持续1个半月才会崩溃,也够了
2逻辑上减少cpu的办法就是把部分相同处理结果缓存起来,比如创建角色,初始属性每个职业都一样,没必要每次都经过属性系统算出所有属性,可以把结果直接缓存起来

3把逻辑相对独立的部分提取出来,放到新的进程中,比如一些纯转发的部分,聊天,还有cpu密集的操作,排行等

4设计修改,比如尽快分流,这样场景消息的互相转发就少了

cpu减压一般没什么简便的办法,取决于设计,只有设计简化,才能减压

页游回合制游戏的在线更容易高,逻辑实现没问题的话,单进程基本能达到2000+,可能会有个排行服进程,如果分出场景服(只用于转发),3000应该没问题,但是没必要了
ARPG在1500+,1个中心服进程(网关服+逻辑服),+6-8个场景服进程(4-6个场景服,2个副本服),因为场景服能通过加数量分担压力,但是很是压力很大,因为场景内的单线肯定得在1个场景服中,中心服进程压力也大,服务器间的通信部分要特别注意,特别容易出现中心服和场景服数据不一致。
多进程的方式肯定能达到更高在线,拆出越多进程性能越好,但是管理更麻烦,中心服和场景服这种方式就能达到不错的在线了。ARPG一般都是大场景,分地块

手游服务器基本性能不成问题,逻辑天生更简单,交互更少,在线峰值更低。

服务器网络压力基本没有
无缝单地图大世界的方式不知道怎么办,好像也没见到什么页游做过这种,端游有,端游几千号称几万的单服在线不知道怎么弄的,

一般而言,海外基本不用考虑性能,因为人少,包括联运平台也是,迅雷1个服的量可能在5000-6000的就比较多了,少的几百人开1个服,主要是平台主推你的产品的时候

之前有几篇文章说服务器实现,lua实现的服务器在线人数经验值如下(jit开在2,再往上会崩溃)

页游的回合制游戏,单服单进程,前期逻辑优化,在2000左右的在线,arpg游戏在1500+

超过这个值,延迟开始变的明显,并不是不能支撑

posted on 2014-06-14 19:14  marcher  阅读(1316)  评论(3编辑  收藏  举报

导航