网上查了一圈,说法不一,自己总结一二,防止忘记,厚积而薄发。

参考依据:

1.具有相同core id的cpu是同一个core的超线程。 
2.具有相同physical id的cpu是同一颗cpu封装的线程或者cores。 

验证:

以我的服务器为例,cat /proc/cpuinfo中model name信息为: Intel(R) Xeon(R) CPU  X5650  @ 2.67GHz经查询本款CPU有6核12线程,支持超线程。

1.查看机器的cpu个数,即颗数(cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l)。说明此机器装有2颗X5650CPU。

2.查看核数,cpu cores值为6,或者第二种的方法(cat /proc/cpuinfo | grep 'core id' | sort | uniq),查询为6核

注:core id为一组不连续的值,在每颗CPU上相同,每颗CPU上的值均为0、1、2、8、9、10(只是本机),故为6核。

相同的core id下processor不同,这即为超线程的体现,故在此机器上top看到的cpu个数为24(2颗*6核*超线程)

3、查看是否支持多线程还有另外一种方法,查询flags是否有ht字符串(cat /proc/cpuinfo | grep ht --color)


Logo

更多推荐