Linux问答:你究竟有几颗芯?

朋友来信,说起最近装了一台双核双CPU服务器,Linux版本用的是 RHEL 3 update 8,启动后执行 top 命令一看,居然只能看到四个CPU。照理说,每颗物理CPU有两个核(Dual core),每个核有两个超线程(Hyper thread),如此算来,2颗物理CPU * 2个核 * 2个超线程,应该能在系统里看到8个逻辑CPU才对。这儿只有4个CPU,那么另外4个难道被JS匿下了不成?大惑不解,故来信询问。

远程登录那台服务器,执行`dmesg | grep CPU`,发现启动时确实只能探测到4个CPU:

CPU0: Intel(R) Xeon(R) CPU 5110 @ 1.60GHz stepping 06
CPU1: Intel(R) Xeon(R) CPU 5110 @ 1.60GHz stepping 06
CPU2: Intel(R) Xeon(R) CPU 5110 @ 1.60GHz stepping 06
CPU3: Intel(R) Xeon(R) CPU 5110 @ 1.60GHz stepping 06
Brought up 4 CPUs

再执行`cat /proc/cpuinfo`,也同样只能看到4个CPU,并且每个CPU的信息里都有:

siblings : 2
cpu cores : 2
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm pni monitor ds_cpl tm2 xtpr

双核CPU,支持超线程(ht),没错啊。还不放心,再执行`dmidecode | grep -A 40 Processor`,赫然显示:

Flags:
HTT (Hyper-threading technology)

没天理了,现在的JS连这种双核CPU都能使猫腻,良心都被狗吃了么?且慢,为了抓个确证,再到Intel官方网站上查查这种CPU的spec:http://processorfinder.intel.com/details.aspx?sSpec=SL9RZ 怪了,这种CPU的 Support features 里居然没有 Hyper-Threading Technology。那么前面 cpuinfo 里看到的 "ht" 和 dmidecode 里看到的 “HTT (Hyper-threading technology)” 是怎么回事呢?

无奈只好写信给Kernel List求教,随即,著名Kernel Hacker,Arjan van de Ven(原Red Hat Linux Kernel项目负责人,去年跳槽到Intel,这个问题他最有发言权)就回信说:

the "ht" flag there ONLY means "we support reporting the number of
threads/cores/etc via the MSRs". It does not mean that you actually have
hyperthreading, only that your cpu knows how to report what it
supports...

原来如此,这些 flag 只是说明CPU支持通过 MSRs(Model Specific Register) 报告这些东东的数量,并非说它支持 Hyper-threading ,实在是太诡异了。这么算下来,看到 2颗物理CPU * 2个核 = 4 个逻辑CPU,是正常的。

为什么双核CPU不支持超线程呢?8个逻辑CPU总比4个跑得快吧,再说超线程也是Intel比较成熟的技术了,应该不会有什么问题。于是又去查资料,发 现双核技术与超线程技术之间并非 2 * 2 = 4 的关系。以前在单核CPU上跑超线程,确实可以带来并发性能的提升,但由于超线程追根究底还是跑在一个物理CPU上,因此两个超线程之间需要共享同一份资 源,而对于共享资源的争用,正是超线程在高负载环境下不仅不能提升性能,反而会导致CPU性能严重下降的原因。由此才出现了双核技术,两个物理的核封装在同一个物理CPU内,各吃各碗里的,友好合作,互不争抢,和谐双赢,使得CPU性能在高负载下表现得更好。因此,双核技术是超线程技术的替代者,不用超线程,服务器跑得更快。

3 评论:

phpatch 说...

那双核还鼓吹超线程,算不算欺骗消费者呢?

hutuworm 说...

支持 HT,并不意味着你就要打开使用它。不算欺骗消费者,关键是你怎么选择。

phpatch 说...

那也是,如果给菜鸟配机器看来是不用弄这玩意儿了。
谢谢你。

::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com


订阅 substack 体验古早写作:


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

关注公众号, 持续获得相关各种嗯哼:
zoomquiet


自怼圈/年度番新

DU22.4
关于 ~ DebugUself with DAMA ;-)
粤ICP备18025058号-1
公安备案号: 44049002000656 ...::