LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1102|回复: 12

讨论家用电脑HT在gentoo box中是否开启

[复制链接]
发表于 2006-2-8 16:46:58 | 显示全部楼层 |阅读模式
关于HT,好像在linux中还没有在性能当中讨论到,在win32操作系统中,很多视频和文章已经清晰的,详细的描述了。但在Linux系统中,这个部分好像被忽略了。

我的机器是P4 2.8的,以前CPU的HT默认是开着的,为了配合,我也在内核中编译进SMP support。但是我发现在日常处理中,很多操作,比如解包、压缩、firefox等等,CPU利用率为50%,虽然说background的mp3因为HT技术播放的很顺畅,但是性能却下降了。即便是会fork 2个进程的wine,在玩wow的时候,处理也是偏重于一个进程,而另外一个半块CPU有很大的资源浪费,而执行程序却需要那一部分的运算。现在我把HT Disable了,SMP也从kernel中移除,发现wow的fps有5-10的提升。

但也有副作用,在玩quake3的时候(不好意思,我总是拿游戏来举例子,不过游戏持久大量运算的确能够说明问题),有卡机的情况,原因在读取硬盘上的texture。在SMP的时候,系统会腾出50%的cpu,会让系统io之类的操作有余。这时候,如果使用nice就能很好的解决这个问题。

那么是否HT在gentoo中,或者在linux是无意义的呢?是否把HT关掉,使用nice来控制cpu,而不是用HT技术来“腾出”一部分运算力留作另外一个进程用会更加合理?

我对硬件不是很了解,也是突然想起这个问题的,欢迎讨论。
发表于 2006-2-8 16:50:47 | 显示全部楼层
看来回家我也要试验一下把他禁用了,比较一下怎么样。
回复 支持 反对

使用道具 举报

发表于 2006-2-8 16:55:47 | 显示全部楼层
我很关心你是用那个版本的wine来玩wow的;
介绍一下,你玩wow时,效果好吗?
回复 支持 反对

使用道具 举报

发表于 2006-2-8 17:42:22 | 显示全部楼层
HT是个比较鸡肋的技术
效果不比dual core好
功耗却比较高
回复 支持 反对

使用道具 举报

发表于 2006-2-8 17:49:28 | 显示全部楼层
Post by yggdrasil
我的机器是P4 2.8的,以前CPU的HT默认是开着的,为了配合,我也在内核中编译进SMP support。但是我发现在日常处理中,很多操作,比如解包、压缩、firefox等等,CPU利用率为50%,虽然说background的mp3因为HT技术播放的很顺畅,但是性能却下降了。即便是会fork 2个进程的wine,在玩wow的时候,处理也是偏重于一个进程,而另外一个半块CPU有很大的资源浪费,而执行程序却需要那一部分的运算。现在我把HT Disable了,SMP也从kernel中移除,发现wow的fps有5-10的提升。

你怎么发现CPU利用率为50%
我没用过HT的CPU,请问怎么disable HT?BIOS里难道可以设置,还是仅仅指disable smp?
你怎么发现玩wow时偏重处理一个进程?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-8 18:29:23 | 显示全部楼层
可以使用top,可以发现只有一个CPU工作是100%,还有一个没到,大概30%左右
也可以使用gnome的applet,可以发现CPU指示停留在一半的位置

还有一种情况,进程在创建的时候,会自动判断应该使用哪个CPU,但是,进程不能在运行的时候切换CPU的,所以会发生2个wine loader会占用同一个CPU,比较少见,但比较的惨。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-8 18:53:00 | 显示全部楼层
Post by jeffky
我很关心你是用那个版本的wine来玩wow的;
介绍一下,你玩wow时,效果好吗?
gentoo wiki上有wow设定方法,补丁什么的,大概在25-30 fps左右,MC就只有15fps左右了
回复 支持 反对

使用道具 举报

发表于 2006-2-9 01:26:21 | 显示全部楼层
Post by yggdrasil
可以使用top,可以发现只有一个CPU工作是100%,还有一个没到,大概30%左右
也可以使用gnome的applet,可以发现CPU指示停留在一半的位置

还有一种情况,进程在创建的时候,会自动判断应该使用哪个CPU,但是,进程不能在运行的时候切换CPU的,所以会发生2个wine loader会占用同一个CPU,比较少见,但比较的惨。

为了充分利用已经hot的cache,有可能出现CPU间的load不平衡
不用gnome,没见过什么样的applet,不过想必应该有两个CPU的图标吧,两个都是50%?你已经开的进程能保证两个CPU%100的忙么?如果只有一个runnable的进程,该进程只有一个线程,即便是在蓝色基因(65535个CPU)上也只能有一个CPU是运行着的,其他都是idle

“进程不能在运行的时候切换CPU的“,这话说的太对了,对到就像说人都有两只眼睛
既然讨论这个层次的问题,那我们还是严谨一点
时间片的概念想必应该知道吧
想必你是想表达:进程一旦在某个CPU上被运行了,那么以后就不会在别的CPU上运行了
不过这个想法是错的
可以参考内核源代码里kernel/sched.c里的load_balance()函数

HT在Linux(这里没有必要提具体的发行版,因为任何发行版都不能阻止用户使用自己编译的内核)里自然是可以得到充分利用的
不过要用合理的benchmark来测试
回复 支持 反对

使用道具 举报

发表于 2006-2-9 05:47:05 | 显示全部楼层
我觉得挺好啊,用gentoo整天编译,编译的时候还是能充分利用CPU的,make.conf里面MAKEOPTS="-j3"。
回复 支持 反对

使用道具 举报

发表于 2006-2-9 05:58:35 | 显示全部楼层
Post by zhllg
.
.
.
不过这个想法是错的
可以参考内核源代码里kernel/sched.c里的load_balance()函数
.
.
.

真佩服。专业水平的体现。。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表