万国觉醒是一款SLG策略手游,拥有庞大的用户群体和较好的口碑,是一款品质很高的SLG手游。但是往往到晚上玩家上线比较集中、战斗比较激烈的时候,就会出现服务器卡顿现象。经过分析,是战斗太多造成的。于是我写了两篇利用CUDA、DPDK、NUMA、Thread-Affinity优化服务器战斗的方案。文章链接如下。
如果服务器端用Java语言,那么需要用JNI技术。但是在用libdpdk.so或者libmtcp.so时会出现CPU占用过高的问题,这是DPDK的PMD轮询机制造成的,需要深度优化DPDK,参考文章如下:
DPDK核心优化
从成本考虑,本优化方案不需要额外增加硬件,只需要服务器的GPU支持,采用较便宜的GeForce系列GPU,成本增加不多,但是可以极大提高运算速度。经测试2000个军队同时战斗只需要1个毫秒左右就可以计算完,加上Device到Host数据传输的时间也仅有几个毫秒而已。服务器因此造成的卡顿可以完全解决。
针对SLG策略手游在高峰期出现的服务器卡顿问题,通过利用CUDA、DPDK、NUMA和Thread-Affinity进行优化,减少了服务器战斗计算时间至1毫秒左右。文章探讨了DPDK的PMD轮询机制导致的CPU高占用,并提供了优化DPDK的参考。方案不需额外硬件,仅需支持GPU的服务器,采用GeForce系列即可实现成本效益的性能提升。
1533

被折叠的 条评论
为什么被折叠?



