PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

E5-2620简测和超线程分配问题造成的性能下降

[复制链接]
跳转到指定楼层
1#
hdmucity 发表于 2013-1-18 12:49 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
点击数:20003|回复数:24
本帖最后由 hdmucity 于 2013-1-18 12:53 编辑


前段时间公司买了一台Dell R720服务器跑公司的CallCenter,基本配置是2 x E5-2620(6核12线程,2GHz,最大睿频2.5GHz,4通道内存),8 x 4GB(每个CPU管理4根,启用四通道,内存参数为DDR3-1333,9-9-9-24-1T)。

服务器刚买来,还没有上应用,我就正好安装了一个Win2008R2做一些有关于多线程的测试。也许能找到为什么E3之类的CPU在开启多线程后有时候游戏性能会下降。

测试方法如下:分别采用CINEBENCH R11.529和Fritz Chess Benchmark v4.3.2.0进行测试,分别测试系统自动分配线程到CPU的关联手动分配线程和CPU的关联两种情况下的分数,进行对比。手动设置关联使用微软的工具Process Explorer,并在系统的Task Manager中进行确认。每张测试图都放上了测试工具的分数和每个核心CPU占用的情况方便对比。

测试章节:
一、基本CPU、MEM性能测试
二、CINEBENCH R11.5多线程性能测试
三、Fritz Chess Benchmark v4.3多线程性能测试
四、总结



一、首先放上CPU-Z和SuperPI、wPrime的测试结果,以及AIDA64的内存测试结果。

SuperPI 1M测试成绩:15.663s
wPrime 32M测试成绩:6.053s (24线程)
wPrime 1024M测试成绩:130.62s (24线程)
AIDA64 Memory测试成绩:Read:11008MB/s,Write:3108MB/s,Copy:7202MB/s,Latency:89.2ns (分数很低,也许是CPU主频低的原因)


CPU的物理核心和逻辑核心的映射情况,0、1是一个物理核心,2、3是一个物理核心,以此类推,最后一个物理核心是22、23
Logical to Physical Processor Map:
**----------------------  Physical Processor 0 (Hyperthreaded)
--**--------------------  Physical Processor 1 (Hyperthreaded)
----**------------------  Physical Processor 2 (Hyperthreaded)
------**----------------  Physical Processor 3 (Hyperthreaded)
--------**--------------  Physical Processor 4 (Hyperthreaded)
----------**------------  Physical Processor 5 (Hyperthreaded)
------------**----------  Physical Processor 6 (Hyperthreaded)
--------------**--------  Physical Processor 7 (Hyperthreaded)
----------------**------  Physical Processor 8 (Hyperthreaded)
------------------**----  Physical Processor 9 (Hyperthreaded)
--------------------**--  Physical Processor 10 (Hyperthreaded)
----------------------**  Physical Processor 11 (Hyperthreaded)

也不知道是装好的Win2008R2系统有问题,还是CPU-Z不兼容,在启动CPU-Z的时候会报错,然后所有信息无法读取。最后将cpuz.ini文件中的SMBus设置为0才可以,但是内存的一些运行参数就无法读取了。不过AIDA64还是可以看到。







二、CINEBENCH R11.5多线程性能测试

1、12个核心,系统自动分配线程和CPU的关联


2、12个核心,手动设置线程和CPU的关联,确保每个每个线程都分配在一个物理CPU的一个逻辑核心上


3、18个核心,系统自动分配线程和CPU的关联


4、18个核心,手动设置线程和CPU的关联,其中有6个物理CPU只是用一个逻辑核心,有6个物理CPU使用上全部两个逻辑核心


5、24个核心满载测试


6、测试成绩总结
单核心测试成绩:0.96 pts
12个核心线程自动分配:9.54 pts(倍率:9.88x)
12个核心线程手动分配:10.78 pts(倍率:11.18x)
18个核心线程自动分配:10.99 pts(倍率:11.39x)
18个核心线程手动分配:11.75 pts(倍率:12.18x)
24个核心线程自动分配:12.80 pts(倍率:13.27x)


三、Fritz Chess Benchmark v4.3多线程性能测试(由于象棋测试最多支持16个核心,所以只测试12核心和16核心的测试情况)

1、12个核心,系统自动分配线程和CPU的关联


2、12个核心,手动设置线程和CPU的关联,确保每个每个线程都分配在一个物理CPU的一个逻辑核心上


3、16个核心,系统自动分配线程和CPU的关联。使用16个核心做测试,系统自动分配的很有意思,所有计算都分布在8个物理核心的16个逻辑核心上,不去调用其他的核心。测试多次都是这么一个情况,而使用15个核心和以下的做测试,则没有该情况。


4、16个核心,手动设置线程和CPU的关联,其中有8个物理CPU只是用一个逻辑核心,有4个物理CPU使用上全部两个逻辑核心


5、15个核心,系统自动分配线程和CPU的关联。


6、测试成绩总结:
12个核心线程自动分配:12968千步
12个核心线程手动分配:14727千步(比自动分配性能提高13%左右)
16个核心线程自动分配:13924千步
16个核心线程手动分配:15169千步(比自动分配性能提高9%左右)
15个核心线程自动分配:14231千步


四、总结

根据以上的测试可以看到,相同核心数测试的情况下,手动分配线程和和CPU逻辑核心的关联要比自动自动分配时的分数高一些。多次测试均是该结果,
甚至15个核心系统自动分配的象棋测试成绩都不如12个核心手动分配的成绩高。

Win2008R2和Win7是同一内核,线程的分配制度也应该是一样。就算是服务器的专用系统都无法正确的分配线程给CPU,造成处理性能下降。何况是家庭使用的Win7。由于现在的游戏大部分都最多只能使用到4个核心,根据以上的测试就知道E3类的CPU为什么在开启超线程后会造成游戏性能下降。

由于服务器继续上公司的应用,所以没有时间进一步测试Win8系统。如果有条件,希望其他的兄弟能测试一下Win8情况下有超线程技术的CPU的线程分配情况如何。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
25#
zgp02261 发表于 2013-1-23 17:19 | 只看该作者
好深奥 反正不会关注这款U 看不懂就看不懂吧
24#
Mufasa 发表于 2013-1-23 10:29 | 只看该作者
杰迪武士 发表于 2013-1-23 09:04
显示归位的是当前停止运行的逻辑核心,你仔细观察可以看到当前状态为“归位”的逻辑核心是没有使用率曲线 ...

是的,这也证明Win7其实知道逻辑核心和物理核心的对应关系。

并且系统会尽量平衡物理核心的运算负荷。

当然,在某些特殊的应用,手动分配会比自动获得更高的效率。
23#
杰迪武士 发表于 2013-1-23 09:04 | 只看该作者
Mufasa 发表于 2013-1-19 10:25
还是看图说话吧:

CPU编号后面写有“归位”的,都是超线程单元

显示归位的是当前停止运行的逻辑核心,你仔细观察可以看到当前状态为“归位”的逻辑核心是没有使用率曲线的
22#
intsilence 发表于 2013-1-23 01:32 | 只看该作者
按照LZ的测试方法,我简单的跑了下CINEBENCHMARK,貌似在Win8下操作系统默认对线程的分配情况会合理点……所以好多CPU在Win8下WEI评分都提高了。

图中数据是在默认情况下测得。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
21#
MMZBSK 发表于 2013-1-21 01:30 | 只看该作者
small 发表于 2013-1-19 10:23
一个核心的2个超线程单元应该是不分的吧?
只有一个工作时,他都是独占了这个物理核心的资源,没有说“单 ...

绝对是有区分的。
如果你看过i7的内核结构图就知道了,超线程技术的实现实际上是在CPU内部占用了3%左右的晶体管,用于虚拟出另一个的核心,然后跟原有的物理核心占用同样的运算资源。也就说,这个逻辑核心是通过某些物理电路模拟出来的,跟原有的物理核心还是有区分的,还是可以被系统识别出来的,并不是说在只有一个物理核心的情况下,两个线程都是逻辑线程,然后地位平等地使用物理资源。
至于这个逻辑核心独占整个物理核心的运算资源时,能不能达到原本物理核心该有的性嫩,这个不好说。

我打个比较具体的比方吧:假设CPU的一个物理内核就是你家的厨房,砧板、菜刀、铁锅、炉灶等等厨具都只有一个,线程就是做饭的人(假设是你或者你女王)。按照你的理解,超线程技术就是在同一个厨房里,你跟你女王两个同时一起做饭,然后平等地使用里面的厨具。而我对超线程的理解是,由始至终,在厨房里干活的都只有你或者你女王一个人,只是,你或者你女王用了一个很巧妙的工具(比如很科幻的机器手),装在身上,模拟出了另一双手,让人看起来就像有两个人一起干活一样,至于那双机器手能不能像真人的手一样灵巧,当机器手能独占所有厨具的时候,能不能跟用人的手达到一样的效果,不得而知。
当然,无论是你的理解还是我的理解,都有一个共同点:只能使用同样的厨具。所以,很容易让人搞混到底是一个人在干活还是两个人在干活。但是,不管两者效率如何,机器手跟人的手总是能区分的吧?

这就是我的理解,呵呵。
20#
s2212123 发表于 2013-1-20 13:25 | 只看该作者
CPU觉得不错。  内存一般般
19#
醉酒棕熊 发表于 2013-1-20 09:49 | 只看该作者

有木有自动批处理软件,让某程序运行时,直接指定给若干物理核心工作
18#
大格格 发表于 2013-1-19 21:27 | 只看该作者
small 发表于 2013-1-19 10:23
一个核心的2个超线程单元应该是不分的吧?
只有一个工作时,他都是独占了这个物理核心的资源,没有说“单 ...

当然分了http://diybbs.zol.com.cn/54/231_531553.html
17#
dy12348765 发表于 2013-1-19 18:33 | 只看该作者
我记得aida那个内存有问题,不过忘记是怎么回事了
我是不是可以认为如果我要是用多核心的情况,首先先使用多物理核心,当所有物理核心用完后再使用逻辑核心
还有一个问题,你试过同数量,不同物理核心的情况吗?
16#
heren3 发表于 2013-1-19 12:55 | 只看该作者
系统分配易冲突,手动分配就各就各位了

而且个人感觉超频后自动分配不容易挂,
15#
xixim 发表于 2013-1-19 12:22 | 只看该作者
学习了,还要详细的品一下。
14#
Mufasa 发表于 2013-1-19 10:25 | 只看该作者
还是看图说话吧:

CPU编号后面写有“归位”的,都是超线程单元
系统会优先使用普通物理核心,物理核心接近满载,才会使用超线程单元。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
13#
small 发表于 2013-1-19 10:23 | 只看该作者
Mufasa 发表于 2013-1-19 10:18
Win7 正确识别超线程单元以后会在资源监视器里面显示出来。
实际运行时也会优先分配物理核心承担更多的负荷 ...

一个核心的2个超线程单元应该是不分的吧?
只有一个工作时,他都是独占了这个物理核心的资源,没有说“单个核心的2个线程里,有一个是物理的,一个是虚拟的”,没这说法吧
12#
Mufasa 发表于 2013-1-19 10:18 | 只看该作者
Win7 正确识别超线程单元以后会在资源监视器里面显示出来。
实际运行时也会优先分配物理核心承担更多的负荷。

楼主测试的结果更像是没有识别超线程单元的结果。
11#
McLaren 发表于 2013-1-19 10:03 | 只看该作者
系统不知道哪个是物理哪个是HT,所以自动情况下很可能会把2个线程跑到一个物理+HT的核心上,或者也会发生2个线程分别跑在两个HT上,这样就会导致性能不如物理核心

另外楼主是如何确定CPU多个线程中哪个是物理核心哪个是HT,有时候排序是乱的
10#
神谕之冠 发表于 2013-1-18 23:09 | 只看该作者
很高深的样子,对至强了解不多,看完不明觉厉,似乎长姿势了!简单的理解貌似就是单核效能高比多核心超线程更实用的节奏~~
9#
gzitck 发表于 2013-1-18 16:28 | 只看该作者
不明觉厉。。。。。。。。。。。。。。。。
8#
hdmucity  楼主| 发表于 2013-1-18 13:58 | 只看该作者
royalk 发表于 2013-1-18 13:49
不是单线程,是单路CPU,6C12T跑不多于6个线程
也就是限定前12个线程自由分配和CPU#0/2/4/6/8/10这样跑 ...

单路CPU的测试当时没有做,所有测试都是在两个CPU都启动的情况下做的。

12个核心的测试有做,在文中有。手动分配比自动分配大约上高13%左右的性能。6个核心的就没有测试了,但我认为手动分配和自动分配不会有太大差别,毕竟有24个核心可以供使用,同事用到一个物理核心上的两个逻辑核心的情况比较小。
7#
royalk 发表于 2013-1-18 13:49 | 只看该作者
hdmucity 发表于 2013-1-18 13:43
有可能是服务器主板的问题,在没关掉SMbus这个参数的时候启动CPUZ都会报错,然后CPUZ这个进程就无法关掉 ...


不是单线程,是单路CPU,6C12T跑不多于6个线程
也就是限定前12个线程自由分配和CPU#0/2/4/6/8/10这样跑
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部