cpu个数:
物理cpu个数:物理CPU数就是实际服务器中插槽上的CPU个数,主板上实际插入的cpu数量
逻辑cpu个数:物理CPU个数 * 每颗物理CPU的核数 * 超线程数
cpu核数:
每颗物理CPU可以有1个或者多个物理内核,通常每颗物理CPU的内核数都是固定的,cpu核数就是指单块CPU上面能处理数据的芯片组的数量,如双核、四核等 (cpu cores)
超线程技术:
超线程(Hyper-Threading,简称“HT”)技术。
超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,
让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,
减少了CPU的闲置时间,提高的CPU的运行效率。
超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,
理论上要像两颗CPU一样在同一时间执行两个线程,
虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,
每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,
其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。
因此超线程的性能并不等于两颗CPU的性能
查看物理cpu个数:
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
查看物理cpu的核数:
cat /proc/cpuinfo | grep "cpu cores" | sort | uniq
查看系统是否开启超线程:
lscpu命令查看cpu的状态,超线程状态下threads per core数值为2,禁用时为1.
以上概念的关系:
CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数
注意: 应用最大有效计算并行度即为所在机器的逻辑cpu个数,top然后输入1可显示所有逻辑cpu具体的消耗