具体案例求解惑:两个单路服务器比一个双路服务器性能高100%?


背景:网游应用,一共就三个APP,一个gate,一个game,一个dbcenter,后端mysql 数据库
APP全部跑在一台Dell R610上,CPU E5520*2 (主频2.26GHz),8G RAM,windows2008 64位。
应用程序是32位编译的,其中gate就单线程的,game一个主线程,处理所有的NPC,角色,几个辅助线程处理其它应用。
gate,game一运行起来,就各把一个核撑满了,所以8个核,除去系统外,一共也就只用了2个多一点。
原来我们一直这么来运行,结果PCU不怎么理想,就再也上不去了,

换成最新的主频较高的CPU X5677×2 主频3.46GHz的机器,PCU提高了20%,这个基本和我们估计的差不多,主频越高,性能越好。

有一次,尝试用两台单路的5520的服务器来运行,一个只跑gate,一个跑game,dbcache,
结果让我们大吃一惊,PCU提高了100%,一下子就解决了我们单服承载人数的问题。

一下子提高这么多,简直超出我们的想像,但主要瓶颈主要卡在什么地方了呢?是否有优化的地方,在一台双路机器上
也能达到提升100%的效果。


毕竟机器用的越少,对以后的管理维护成本也越低。

系统架构 架构设计 数据库设计

小野妹汁。 12 years, 5 months ago

有如下的可能:
1. 服务器程序本身是单线程的,在多cpu上运行时有可能存在cpu资源的竞争关系,可以设置各个程序运行在不同的cpu或者core上
2. 各个程序之间在数据存取上存在竞争关系,比如都对磁盘文件有存取动作,导致磁盘I/O成为瓶颈
3. 数据库程序dbcenter很占用内存。

DRDRDDR answered 12 years, 5 months ago

Your Answer