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

发布于 2016-11-07 16:40:55 字数 609 浏览 1513 评论 4

背景:网游应用,一共就三个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%的效果。


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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

虐人心 2017-10-06 13:45:39

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

甜柠檬 2017-07-03 20:04:03

"两个单路服务器比一个双路服务器性能高100%?"的原因是由于操作系统处理SMP调度造成的,多处理器涉及软硬件资源共享、同步、任务分配。所以两台单CPU机器,肯定比一台双CPU机器速度快。
特别是你这种高负荷情况,占2个G的内存,呵呵...

甜柠檬 2017-06-28 11:58:06

对于单线程的程序,在多CPU环境下运行跟在单CPU环境下一样。 对于多线程的程序,在多CPU环境下系统能把任务平均分配给各个CPU去处理(需要操作系统的支持)。而在单CPU的环境下,各线程按其优先级由操作系统分配CPU时间,即轮流获得CPU的使用权。

但我猜测问题你的性能提升瓶颈不是真正由于单双路这个问题引起的,理论上两个单路服务器是要比双路服务器快一些,但不会这么离谱,应该是由于你于他们之间有共享资源,或者存在争夺资源的情况,最好检查一遍写的逻辑吧,逐步测试查找问题吧

虐人心 2017-05-17 02:05:30

估计是程序没写好,都是单线程的,那就只能用到一个逻辑cpu,具体情况还是要靠自己优化吧,自己搞清楚到底是程序的哪一部分占用的时间最多。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文