搞棋牌服务器,是不是多进程更加有效率?

qq16651166

如题,是搞棋牌游戏的。反正玩家只和自己房间的人有交互,那么我将原来的单进程改成多进程,从“8000一个端口”改成“8000/8001/8002”去干活,响应速度是会加快的?(现在估计有1000人同时在线)

2080 2 0
2个回答

blogdaren

1、一般的CPU多核的情况下才能充分发挥多进程的优势,因为单核的话多进程开销也很大,不一定效率最好;
2、在多核前提下,顺着你的思路,建议根据端口比如8001/8002/8003等分别建立多个worker实例,但是每个worker实例设置成单进程模型,这也算是一种特殊的多进程模型,端口独立还便于部署集群,既提升效率也便于扩展;
3、之所以推荐每个worker实例设置为单进程模型,主要是为了方便单进程内或同一房间内的用户进行通讯;
4、棋牌类游戏通讯量一般比较小,单进程内支持千人甚至上万人不在话下;

  • qq16651166 2020-03-06

    谢谢你的建议,我去研究一下多worker

blogdaren

1、一般的在CPU多核的情况下才能充分发挥多进程的效率优势,(因为单核的话多进程切换开销是很大的,不一定效率最高);
2、根据你更改的思路,建议根据8000/8001/8002等等这些端口建立多个不同的worker实例,然后每个worker实例都设置成单进程模型,这样算是一种特殊的多进程模型,端口独立也便于集群部署,所以既能提升效率也便于扩展;
3、之所以推荐单个worker实例设置为单进程模型,主要是为了方便同一个进程内或者房间内的用户进行通讯;
4、最后就是棋牌类游戏一般通讯量比较小,单进程支持上千人甚至上万人不在话下;

  • 暂无评论
年代过于久远,无法发表回答
🔝