一、总的看法
之前游戏开多线程是因为机器原因,榨干CPU的全部性能,现在机器性能好了,所以基本都是多进程
二、各种搭配
1)多进程单线程(每个单进程一个单线程)
-
优点
①故障隔离,一个逻辑服务器宕机不会影响全服玩家;
②扩展性强,多个分布式部署,可以达到几万人同时在线 -
缺点
①为了充分利用多核,会一台物理机会部署多个逻辑服务器,但是由于这个服务器是开了共享内存的进程,会有很多内存冗余占用;
②由于有多个逻辑服务器,得有个中控服务器异步的同步各个逻辑服务器的数据,数据同步和异步调用让写逻辑非常难受 -
代表作
天涯明月刀、轩辕传奇、御龙在天

-
理由
1)首先,不拆进程不利于协同开发,因为系统耦合度太高。现在一款游戏大作,开发团队动辄几十人,多则上百人,其中负责后台开发的团队也有大几十人,这么一个系统,大家都在同一个进程里面写,责任不明晰,出了问题很难判断问题在哪。
2)其次,后台很多系统、子系统之间性能有差异。比如登录模块在10万PCU下所需的进程数、机器数,可能跟负责对局的模块不一样,聊天模块、活动子系统之间也存在性能差异。如果不拆分进程,就不能做到按需部署,只能很暴力地把进程按某种倍数扩容,这必然会浪费机器资源,甚至有可能增加机器、部署更多进程,都解决不了性能瓶颈。
3)现在很多游戏都会寻求出海,出海必然会存在地域差异,如果想要提供好的游戏体验,就必须考虑就近部署的问题,如果进程不拆开的话,就近部署其实比较难做。
4)在容灾上会受到一定限制。因为我们没有把关键子系统拆分出来,而人力成本