查看: 2062|回复: 4

Ubuntu -- 下如何查看CPU信息, 包括位数和多核信息

[复制链接]

81

主题

162

帖子

493

积分

推广大使

积分
493
发表于 2018-12-11 20:19:59 | 显示全部楼层 |阅读模式
查看当前操作系统内核信息
# uname -a

Linux redcat 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux

查看当前操作系统发行版信息

#cat /etc/issue
Ubuntu 9.10 /n /l


查看cpu型号

# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
2  Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz
(看到有2个逻辑CPU, 也知道了CPU型号)



查看物理cpu颗数
# cat /proc/cpuinfo | grep physical | uniq -c
2 physical id    : 0
(说明实际上是1颗2核的CPU)


查看cpu运行模式
# getconf LONG_BIT
32
(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)


查看cpu是否支持64bit
# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
2
(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)

查看cpu信息概要(昨天看aix的时候刚发现的,在ubuntu上竟然也有~):
#lscpu
Architecture:          i686                            #架构686
CPU(s):                2                                   #逻辑cpu颗数是2
Thread(s) per core:    1                           #每个核心线程数是1                 
Core(s) per socket:    2                           #每个cpu插槽核数/每颗物理cpu核数是2
CPU socket(s):         1                            #cpu插槽数是1
Vendor ID:             GenuineIntel           #cpu厂商ID是GenuineIntel
CPU family:            6                              #cpu系列是6
Model:                 23                                #型号23
Stepping:              10                              #步进是10
CPU MHz:               800.000                 #cpu主频是800MHz
Virtualization:        VT-x                         #cpu支持的虚拟化技术VT-x(对此在下一博文中解释下http://hi.baidu.com/sdusoul/blog ... f3a998a5c272c0.html)
L1d cache:             32K                         #一级缓存32K(google了下,这具体表示表示cpu的L1数据缓存为32k)
L1i cache:             32K                          #一级缓存32K(具体为L1指令缓存为32K)
L2 cache:              3072K                      #二级缓存3072K


最后来个大而全的:
#cat /proc/cpuinfo
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 23
model name    : Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz
stepping    : 10
cpu MHz        : 800.000
cache size    : 3072 KB
physical id    : 0
siblings    : 2
core id        : 0
cpu cores    : 2
apicid        : 0
initial apicid    : 0
fdiv_bug    : no
hlt_bug        : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 13
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida tpr_shadow vnmi flexpriority
bogomips    : 4788.60
clflush size    : 64
power management:

processor    : 1
vendor_id    : GenuineIntel
cpu family    : 6
model        : 23
model name    : Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz
stepping    : 10
cpu MHz        : 800.000
cache size    : 3072 KB
physical id    : 0
siblings    : 2
core id        : 1
cpu cores    : 2
apicid        : 1
initial apicid    : 1
fdiv_bug    : no
hlt_bug        : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 13
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida tpr_shadow vnmi flexpriority
bogomips    : 4787.96
clflush size    : 64
power management:

补充,linux下通过c获取CPU个数信息
from: http://hi.baidu.com/hermitinhistory/blog/item/ce64d5fb6b23b71b6d22eb95.html
#include<stdio.h>
#include<unistd.h>

int main()
{
        int cpu_num;

        cpu_num = sysconf(_SC_NPROCESSORS_CONF);
        printf("_SC_NPROCESSORS_CONF=%d/n",cpu_num);

        cpu_num = sysconf(_SC_NPROCESSORS_ONLN);
        printf("_SC_NPROCESSORS_ONLN=%d/n",cpu_num);

        return 0;
}

/*
* - _SC_NPROCESSORS_CONF
*       The number of processors configured.
*
* - _SC_NPROCESSORS_ONLN
*       The number of processors currently online (available).
*/


Linux下获得CPU个数一个简单方法就是查看/proc/cpuinfo文件。看出现processor字样的行数是多少条,即有多少个逻辑CPU(包括多核,超线程)。
因此cmd下输入下面命令即可:
cat /proc/cpuinfo | grep processor | wc -l
因此c++程序中很自然的想到使用strstr函数查找processor关键词出现次数即可。

回复

使用道具 举报

81

主题

162

帖子

493

积分

推广大使

积分
493
 楼主| 发表于 2019-4-12 12:31:34 | 显示全部楼层
very good

useful for me
回复

使用道具 举报

81

主题

162

帖子

493

积分

推广大使

积分
493
 楼主| 发表于 2019-4-12 12:31:48 | 显示全部楼层
i use the command to verify my computer
回复

使用道具 举报

81

主题

162

帖子

493

积分

推广大使

积分
493
 楼主| 发表于 2019-4-12 12:31:59 | 显示全部楼层
it is extremely simple and useful
回复

使用道具 举报

81

主题

162

帖子

493

积分

推广大使

积分
493
 楼主| 发表于 2019-4-12 12:32:14 | 显示全部楼层
cool command
回复

使用道具 举报

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

本版积分规则

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