如何用多核CPU来提高游戏服务器的性能

如何通过mutil-core cpu提供游戏服务器性能我的观点:

  1. 一个繁忙的过程使一个核心忙,如果只有一个繁忙的过程,非常糟糕。
  2. 多进程进程监听不同端口上的并发连接
  3. 多进程不能直接共享内存数据。 他们需要沟通。
  4. 他们可以在socket,fp socket和redis中进行通信
  5. 单独的游戏服务器转化为不同的function,每个function都是一个独立的过程,某些function可以是并行过程。

如果我的观点是正确的,我的问题是:

什么是进程之间沟通的最佳方式,保持数据同步,最好的办法就是快速简单。

我正在使用nodejs,但是我认为对于这个主题也是一样的。

编辑:

按function分片或分离,效果更好

有关于互联网上可用的许多讨论,所以我只是join链接,而不是重复他们说的话:

  • 正确使用线程=隔离+asynchronous消息
  • 正确使用线程池:保持任务简短且无阻塞
  • 分手和交错的工作,以保持线程响应
  • 共享是所有争夺的根源
  • deviseManycore系统

这些链接显示了创build安全且devise良好的并行解决scheme的最佳实践。

我会build议创build一个线程池来处理连接。 每个连接一个线程。 这是服务器的常见“模式”。

node.js的一个方法是使用ØMQ ,它允许您使用相同的简单BSD套接字兼容API在线程,进程和服务器之间进行通信。

这里是node.js绑定来尝试:

https://github.com/JustinTulloss/zeromq.node