关仁隐仕 發表於 2020-3-16 15:44:00

Ubuntu 下查看CPU 信息命令

<p>from: http://hi.baidu.com/hermitinhistory/blog/item/ce64d5fb6b23b71b6d22eb95.html</p>
<p>查看当前操作系统内核信息</p>
<h1 id="uname--a">uname -a</h1>
<p>Linux redcat 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux</p>
<p>查看当前操作系统发行版信息</p>
<h1 id="cat-etcissue">cat /etc/issue</h1>
<p>Ubuntu 9.10 /n /l</p>
<p>查看cpu型号</p>
<h1 id="cat-proccpuinfo--grep-name--cut--f2--d--uniq--c">cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c</h1>
<p>2Intel(R) Core(TM)2 Duo CPU   P8600@ 2.40GHz<br>
(看到有2个逻辑CPU, 也知道了CPU型号)</p>
<p>查看物理cpu颗数</p>
<h1 id="cat-proccpuinfo--grep-physical--uniq--c">cat /proc/cpuinfo | grep physical | uniq -c</h1>
<p>2 physical id    : 0<br>
(说明实际上是1颗2核的CPU)</p>
<p>查看cpu运行模式</p>
<h1 id="getconf-long_bit">getconf LONG_BIT</h1>
<p>32</p>
<p>(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)</p>
<p>查看cpu是否支持64bit</p>
<h1 id="cat-proccpuinfo--grep-flags--grep--lm---wc--l">cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l</h1>
<p>2</p>
<p>(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)</p>
<p>查看cpu信息概要(昨天看aix的时候刚发现的,在ubuntu上竟然也有~):</p>
<h1 id="lscpu">lscpu</h1>
<p>Architecture:          i686                            #架构686<br>
CPU(s):                2                                 #逻辑cpu颗数是2<br>
Thread(s) per core:    1                           #每个核心线程数是1<br>
Core(s) per socket:    2                           #每个cpu插槽核数/每颗物理cpu核数是2<br>
CPU socket(s):         1                            #cpu插槽数是1<br>
Vendor ID:             GenuineIntel         #cpu厂商ID是GenuineIntel<br>
CPU family:            6                              #cpu系列是6<br>
Model:               23                              #型号23<br>
Stepping:            10                              #步进是10<br>
CPU MHz:               800.000               #cpu主频是800MHz<br>
Virtualization:      VT-x                         #cpu支持的虚拟化技术VT-x(对此在下一博文中解释下http://hi.baidu.com/sdusoul/blog/item/5d8e0488def3a998a5c272c0.html)<br>
L1d cache:             32K                         #一级缓存32K(google了下,这具体表示表示cpu的L1数据缓存为32k)<br>
L1i cache:             32K                        #一级缓存32K(具体为L1指令缓存为32K)<br>
L2 cache:            3072K                      #二级缓存3072K</p>
<p>最后来个大而全的:</p>
<h1 id="cat-proccpuinfo">cat /proc/cpuinfo</h1>
<p>processor    : 0<br>
vendor_id    : GenuineIntel<br>
cpu family    : 6<br>
model      : 23<br>
model name    : Intel(R) Core(TM)2 Duo CPU   P8600@ 2.40GHz<br>
stepping    : 10<br>
cpu MHz      : 800.000<br>
cache size    : 3072 KB<br>
physical id    : 0<br>
siblings    : 2<br>
core id      : 0<br>
cpu cores    : 2<br>
apicid      : 0<br>
initial apicid    : 0<br>
fdiv_bug    : no<br>
hlt_bug      : no<br>
f00f_bug    : no<br>
coma_bug    : no<br>
fpu      : yes<br>
fpu_exception    : yes<br>
cpuid level    : 13<br>
wp      : yes<br>
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<br>
bogomips    : 4788.60<br>
clflush size    : 64<br>
power management:</p>
<p>processor    : 1<br>
vendor_id    : GenuineIntel<br>
cpu family    : 6<br>
model      : 23<br>
model name    : Intel(R) Core(TM)2 Duo CPU   P8600@ 2.40GHz<br>
stepping    : 10<br>
cpu MHz      : 800.000<br>
cache size    : 3072 KB<br>
physical id    : 0<br>
siblings    : 2<br>
core id      : 1<br>
cpu cores    : 2<br>
apicid      : 1<br>
initial apicid    : 1<br>
fdiv_bug    : no<br>
hlt_bug      : no<br>
f00f_bug    : no<br>
coma_bug    : no<br>
fpu      : yes<br>
fpu_exception    : yes<br>
cpuid level    : 13<br>
wp      : yes<br>
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<br>
bogomips    : 4787.96<br>
clflush size    : 64<br>
power management:</p>
<p>补充,linux下通过c获取CPU个数信息</p>
<p>from: http://hi.baidu.com/hermitinhistory/blog/item/ce64d5fb6b23b71b6d22eb95.html</p>
<pre><code>#include&lt;stdio.h&gt;
#include&lt;unistd.h&gt;

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).
*/

</code></pre>
<p>Linux下获得CPU个数一个简单方法就是查看/proc/cpuinfo文件。看出现processor字样的行数是多少条,即有多少个逻辑CPU(包括多核,超线程)。<br>
因此cmd下输入下面命令即可:<br>
cat /proc/cpuinfo | grep processor | wc -l<br>
因此c++程序中很自然的想到使用strstr函数查找processor关键词出现次数即可。</p><br><br>
来源:https://www.cnblogs.com/michaelcjl/p/12504322.html
頁: [1]
查看完整版本: Ubuntu 下查看CPU 信息命令