CPU个数理解

首先有三个概念:

物理CPU、逻辑CPU、CPU核数

  1. 一个物理CPU上有多个CPU核,如果采用了intel的超线程技术(HT), 就会再多出一倍的cpu核出来
  2. 一般情况下,逻辑cpu数=物理CPU*cpu核数
  3. 如果采用了超线程技术,则正常逻辑cpu数=物理CPU*cpu核数*2

top然后1看到的cpu个数以及java中的Runtime.getRuntime().availableProcessors()获得到的都是逻辑cpu数。

查看物理CPU的个数
#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
查看逻辑CPU的个数
#cat /proc/cpuinfo |grep "processor"|wc -l 
查看CPU是几核
#cat /proc/cpuinfo |grep "cores"|uniq
如果逻辑cpu数不是物理CPU数*CPU核数,而是其2倍,则代表采用超线程技术,cat /proc/cpuinfo |grep "core id",相同的core id即代表是同一个核的超线程。


参考资料:
http://blog.csdn.net/cbmsft/article/details/7219370
http://blog.csdn.net/chw1989/article/details/9150767

猜你喜欢

转载自wsmajunfeng.iteye.com/blog/2109728