Ubuntu 下查看CPU 信息命令

摘要:
看看带有“处理器”一词的行数,即逻辑CPU的数量。因此,您可以在cmd下输入以下命令:cat/proc/cpuinfo|greproprocessor|wc-l因此,C++程序自然会想到使用strstr函数来查找processor关键字的出现次数。

from: http://hi.baidu.com/hermitinhistory/blog/item/ce64d5fb6b23b71b6d22eb95.html

查看当前操作系统内核信息

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/item/5d8e0488def3a998a5c272c0.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关键词出现次数即可。

免责声明:文章转载自《Ubuntu 下查看CPU 信息命令》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Centos-修改文件访问和修改时间-touchDapper系列之一:Dapper的入门(多表批量插入)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux用户(组)管理

在linux中系统中,它并不认识帐号名称。它认识的是我们的帐号ID,帐号ID保存在/etc/passwd文件中。我们在登录linux主机时,在输入完帐号和密码时,linux会先查找/etc/passwd文件中是否有这个帐号,如果没有则跳出,如果有的话,他会读取该帐号的user ID和group ID同时该帐号的根目录和shell也读了出来。然后在去核对密码...

Dockerfile注意事项

准则 尽量将Dockerfile放在空目录中,如果目录中必须有其他文件,则使用.dockerignore文件。 避免安装不必须的包。 每个容器应该只关注一个功能点。 最小化镜像的层数。 多行参数时应该分类。这样更清晰直白,便于阅读和review,另外,在每个换行符前都增加一个空格。 对构建缓存要有清楚的认识。 指令注意事项 FROM Dockerfil...

Jenkins操作手册 巨详细,一篇足矣!

一、持续集成相关概念 1.1、什么是持续集成? 随着软件开发复杂度的不断提高,团队开发成员间如何更好的协同工作以确保软件开发的质量已经成为开发过程中不可回避的问题。尤其是近年来敏捷开发在软件领域越来越火,如何能在不间断变化的需求中快速适应和保证软件的质量显得尤其重要。持续集成正是针对这一问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至...

简单的linux内核移植知识

Linux内核的移植(ARM)总结 虽然没有干过这个工作,不过听说内核移植从来就不是一个人的事。通常都是由一个百人的团队去做的,所以这里讲的仅仅是最简单的一些。往往不去关心原理,只是懂得如何操作罢了。 知识储备 在学习移植之前,需要知道的知识和概念,操作系统启动的过程,bootloader,内核,根文件系统等。 计算机结构:两层结构:软件,硬件。 四层结构:...

Golang操作Redis

redis 简介 redis(REmote DIctionary Server)是一个由Salvatore Sanfilippo写key-value存储系统,它由C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value类型的数据库,并提供多种语言的API。和Memcached类似,它支持存储的value类型相对更多,包括str...

[转]使用Linux 文本工具简化数据的提取

http://www.sudu.cn/info/html/edu/20080407/263375.html 非常多 Linux® 系统管理员都需要做一些整理纯文本设置文件的乏味工作。幸运的是,Linux 有非常多源自于 UNIX® 的数据提取工具,包括 head、tail、grep、egrep、fgrep、cut、paste、join、awk 等。本文给出...