如何用多核CPU来提高游戏服务器的性能
如何通过mutil-core cpu提供游戏服务器性能我的观点:
- 一个繁忙的过程使一个核心忙,如果只有一个繁忙的过程,非常糟糕。
- 多进程进程并监听不同端口上的并发连接
- 多进程不能直接共享内存数据。 他们需要沟通。
- 他们可以在socket,fp socket和redis中进行通信
- 单独的游戏服务器转化为不同的function,每个function都是一个独立的过程,某些function可以是并行过程。
如果我的观点是正确的,我的问题是:
什么是进程之间沟通的最佳方式,保持数据同步,最好的办法就是快速简单。
我正在使用nodejs,但是我认为对于这个主题也是一样的。
编辑:
按function分片或分离,效果更好
有关于互联网上可用的许多讨论,所以我只是join链接,而不是重复他们说的话:
- 正确使用线程=隔离+asynchronous消息
- 正确使用线程池:保持任务简短且无阻塞
- 分手和交错的工作,以保持线程响应
- 共享是所有争夺的根源
- deviseManycore系统
这些链接显示了创build安全且devise良好的并行解决scheme的最佳实践。
我会build议创build一个线程池来处理连接。 每个连接一个线程。 这是服务器的常见“模式”。
node.js的一个方法是使用ØMQ ,它允许您使用相同的简单BSD套接字兼容API在线程,进程和服务器之间进行通信。
这里是node.js绑定来尝试: