PCEVA,PC绝对领域,探寻真正的电脑知识
开启左侧

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

[复制链接]
hdmucity 发表于 2013-1-18 12:49 | 显示全部楼层 |阅读模式
点击数:19790|回复数: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
juv3 发表于 2013-1-18 13:31 | 显示全部楼层
傻傻分不清楚。。。学习了
royalk 发表于 2013-1-18 13:36 | 显示全部楼层
CPUZ有些信息识别不了应该是服务器主板的问题,AIDA64成绩比较奇怪。。
其它的情况,有没有办法测试单路的时候会不会有这种现象?
hdmucity  楼主| 发表于 2013-1-18 13:43 | 显示全部楼层
royalk 发表于 2013-1-18 13:36
CPUZ有些信息识别不了应该是服务器主板的问题,AIDA64成绩比较奇怪。。
其它的情况,有没有办法测试单路的 ...


有可能是服务器主板的问题,在没关掉SMbus这个参数的时候启动CPUZ都会报错,然后CPUZ这个进程就无法关掉了,只能重启系统。

单线程有过测试,但是没有截图,自动分配的和手动分配到一个核心中的基本一样。两个线程的也差不多。

当时测试时间只有半天,所以没做的那么全面,只是大概的测试了一下。所以有条件的话还需要其他人补充一下测试。
Asuka 发表于 2013-1-18 13:44 | 显示全部楼层
贊LZ    不過   測試軟件還希望可以再豐富一些

超線程擅長的類型也不妨嘗試一些   
hdmucity  楼主| 发表于 2013-1-18 13:48 | 显示全部楼层
Asuka 发表于 2013-1-18 13:44
贊LZ    不過   測試軟件還希望可以再豐富一些

超線程擅長的類型也不妨嘗試一些    ...

谢谢!因为时间很紧,晚上装完系统打完补丁后简单测了一下。然后就重装成ESXi,后面也没有机会再测试了,本来想装Win8看看情况的,也没有办法。

如果软件能利用掉所有的24个核心的话,那么性能不会下降的。如果只利用到了6-12个核心的话,那么性能下降就会较多。6个核心以下的就区别不是太大,系统自动分配很少情况会同时使用到一个物理核心的两个逻辑核心。
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这样跑
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个核心可以供使用,同事用到一个物理核心上的两个逻辑核心的情况比较小。
gzitck 发表于 2013-1-18 16:28 | 显示全部楼层
不明觉厉。。。。。。。。。。。。。。。。
神谕之冠 发表于 2013-1-18 23:09 | 显示全部楼层
很高深的样子,对至强了解不多,看完不明觉厉,似乎长姿势了!简单的理解貌似就是单核效能高比多核心超线程更实用的节奏~~
McLaren 发表于 2013-1-19 10:03 | 显示全部楼层
系统不知道哪个是物理哪个是HT,所以自动情况下很可能会把2个线程跑到一个物理+HT的核心上,或者也会发生2个线程分别跑在两个HT上,这样就会导致性能不如物理核心

另外楼主是如何确定CPU多个线程中哪个是物理核心哪个是HT,有时候排序是乱的
Mufasa 发表于 2013-1-19 10:18 | 显示全部楼层
Win7 正确识别超线程单元以后会在资源监视器里面显示出来。
实际运行时也会优先分配物理核心承担更多的负荷。

楼主测试的结果更像是没有识别超线程单元的结果。
small 发表于 2013-1-19 10:23 | 显示全部楼层
Mufasa 发表于 2013-1-19 10:18
Win7 正确识别超线程单元以后会在资源监视器里面显示出来。
实际运行时也会优先分配物理核心承担更多的负荷 ...

一个核心的2个超线程单元应该是不分的吧?
只有一个工作时,他都是独占了这个物理核心的资源,没有说“单个核心的2个线程里,有一个是物理的,一个是虚拟的”,没这说法吧
Mufasa 发表于 2013-1-19 10:25 | 显示全部楼层
还是看图说话吧:

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

本帖子中包含更多资源

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

x
xixim 发表于 2013-1-19 12:22 | 显示全部楼层
学习了,还要详细的品一下。
heren3 发表于 2013-1-19 12:55 | 显示全部楼层
系统分配易冲突,手动分配就各就各位了

而且个人感觉超频后自动分配不容易挂,
dy12348765 发表于 2013-1-19 18:33 | 显示全部楼层
我记得aida那个内存有问题,不过忘记是怎么回事了
我是不是可以认为如果我要是用多核心的情况,首先先使用多物理核心,当所有物理核心用完后再使用逻辑核心
还有一个问题,你试过同数量,不同物理核心的情况吗?
大格格 发表于 2013-1-19 21:27 | 显示全部楼层
small 发表于 2013-1-19 10:23
一个核心的2个超线程单元应该是不分的吧?
只有一个工作时,他都是独占了这个物理核心的资源,没有说“单 ...

当然分了http://diybbs.zol.com.cn/54/231_531553.html
醉酒棕熊 发表于 2013-1-20 09:49 | 显示全部楼层

有木有自动批处理软件,让某程序运行时,直接指定给若干物理核心工作
s2212123 发表于 2013-1-20 13:25 | 显示全部楼层
CPU觉得不错。  内存一般般
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部