在Linux系统中,提供了proc文件系统显示系统的软硬件信息。

如果想了解系统中CPU的提供商和相关配置信息,则可以通过/proc/cpuinfo文件得到。

基于不同指令集(ISA)的CPU产生的/proc/cpuinfo文件不一样,基于X86指令集(大部分都是这个指令集)CPU的/proc/cpuinfo文件包含如下内容:

processor                 //系统中逻辑处理核的编号,对于单核处理器,则可认为是其CPU编号,对于多核则可以是物理核、或者使用超线程技术虚拟的逻辑核
vendor_id //CPU制造商
cpu family //CPU产品系列代号
model //CPU属于其系列中的哪一代的代号
model name //CPU属于的名字及其编号、标称主频
stepping //CPU属于制作更新版本
cpu MHz //CPU的实际使用主频
cache size //CPU二级缓存大小
physical id //单个CPU的标号
siblings //单个CPU逻辑物理核数
core id //当前物理核在其所处CPU中的编号,这个编号不一定连续
cpu cores //该逻辑核所处CPU的物理核数
apicid //用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
fpu //是否具有浮点运算单元(Floating Point Unit)
fpu_exception //是否支持浮点计算异常
cpuid level //执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
wp //表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)
flags //当前CPU支持的功能
bogomips //在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)
clflush size //每次刷新缓存的大小单位
cache_alignment //缓存地址对齐单位
address sizes //可访问地址空间位数
power management //对能源管理的支持,有以下几个可选支持功能:

其中CPU信息中flags各项含义:

fpu: Onboard (x87) Floating Point Unit
vme: Virtual Mode Extension
de: Debugging Extensions
pse: Page Size Extensions
tsc: Time Stamp Counter: support for RDTSC and WRTSC instructions
msr: Model-Specific Registers
pae: Physical Address Extensions: ability to access 64GB of memory; only 4GB can be accessed at a time though
mce: Machine Check Architecture
cx8: CMPXCHG8 instruction
apic: Onboard Advanced Programmable Interrupt Controller
sep: Sysenter/Sy***it Instructions; SYSENTER is used for jumps to kernel memory during system calls, and SY***IT is used for jumps: back to the user code
mtrr: Memory Type Range Registers
pge: Page Global Enable
mca: Machine Check Architecture
cmov: CMOV instruction
pat: Page Attribute Table
pse36: -bit Page Size Extensions: allows to map MB pages into the first 64GB RAM, used with PSE.
pn: Processor Serial-Number; only available on Pentium
clflush: CLFLUSH instruction
dtes: Debug Trace Store
acpi: ACPI via MSR
mmx: MultiMedia Extension
fxsr: FXSAVE and FXSTOR instructions
sse: Streaming SIMD Extensions. Single instruction multiple data. Lets you do a bunch of the same operation on different pieces of input: in a single clock tick.
sse2: Streaming SIMD Extensions-. More of the same.
selfsnoop: CPU self snoop
acc: Automatic Clock Control
IA64: IA- processor Itanium.
ht: HyperThreading. Introduces an imaginary second processor that doesn't do much but lets you run threads in the same process a bit quicker.
nx: No Execute bit. Prevents arbitrary code running via buffer overflows.
pni: Prescott New Instructions aka. SSE3
vmx: Intel Vanderpool hardware virtualization technology
svm: AMD "Pacifica" hardware virtualization technology
lm: "Long Mode," which means the chip supports the AMD64 instruction set
tm: "Thermal Monitor" Thermal throttling with IDLE instructions. Usually hardware controlled in response to CPU temperature.
tm2: "Thermal Monitor 2″ Decrease speed by reducing multipler and vcore.
est: "Enhanced SpeedStep"

根据以上内容,我们则可以很方便的知道当前系统关于CPU的物理个数、CPU的核数、CPU是否启用超线程等信息。

我们经常需要了解的信息如下:

[root@ ~]# cat /proc/cpuinfo |grep "physical id" |sort|uniq |wc -l   //物理cpu的个数
[root@ ~]# cat /proc/cpuinfo | grep "cpu cores" |uniq //cpu的物理核数
[root@ ~]# cat /proc/cpuinfo | grep "processor" | wc -l //cpu的逻辑核数,逻辑核数从编号0开始(top按1也可查看)

如果cpu cores数量和siblings数量一致,则没有启用超线程,否则超线程被启用。

如上图结果,因为cpu cores和siblings的数量不一致,因此可以看出此cpu使用了超线程的技术。

超线程技术是又INTEL提出来的,它指的是CPU在双核的基础上为其每个核心提供两个线程的运算和处理能力,

特别是让你在多任务运行的时候减少等待的时间,打个简单的比方,如果说你的CPU的运算能力相当于只有两个车道

在车流量的的时候就会造成堵车的现象,超线程技术在这时为你虚拟的增加了两条通道,相当于四车道,这样至少可以

减缓堵车的现象,并且在一般情况下都保证畅通无阻,但它不是通过超频来增加功率。

linux系统下cpu信息的查看的更多相关文章

  1. 查看Linux系统下Raid信息

    软件raid:只能通过Linux系统本身来查看 cat /proc/mdstat 可以看到raid级别,状态等信息. 硬件raid: 最佳的办法是通过已安装的raid厂商的管理工具来查看,有cmdli ...

  2. Linux系统下CPU使用(load average)梳理

    在平时的运维工作中,当一台服务器的性能出现问题时,通常会去看当前的CPU使用情况,尤其是看下CPU的负载情况(load average).对一般的系统来说,根据cpu数量去判断.比如有2颗cup的机器 ...

  3. Linux下CPU信息的查看

    逻辑CPU个数: cat /proc/cpuinfo | grep "processor" | wc -l     //32 物理CPU个数: cat /proc/cpuinfo ...

  4. linux系统物理cpu信息查询

    1.查看CPU型号          cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c  2.查看物理CPU的个数            ca ...

  5. 05 Linux系统下的用户以及用户权限管理(权限管理介绍、用户管理、常见命令介绍)

    这一节我们介绍Linux的用户以及权限管理的前半段,包括:1.权限管理介绍: 2.用户管理: 3.常见命令 权限管理介绍 权限管理: 为了访问计算机资源,我们需要对其进行授权才能访问,根据什么东西来进 ...

  6. 操作系统复习——如何查看一个进程的详细信息,如何追踪一个进程的执行过程 ,如何在 Linux 系统下查看 CPU、内存、磁盘、IO、网卡情况?epoll和select区别?

    1. 如何查看一个进程的详细信息,如何追踪一个进程的执行过程 通过pstree命令(根据pid)进行查询进程内部当前运行了多少线程:# pstree -p 19135(进程号) 使用top命令查看(可 ...

  7. 如何查看linux系统的版本信息

    前言 有时候需要查看linux系统的版本信息,本文将对此简单介绍. 方法 1.输入"uname -a ",可显示电脑以及操作系统的相关信息. 2.输入"cat /etc/ ...

  8. Linux系统下如何查看物理内存占用率

    Linux系统下如何查看物理内存占用率 Linux下看内存和CPU使用率一般都用top命令,但是实际在用的时候,用top查看出来的内存占用率都非常高,如:Mem:   4086496k total, ...

  9. 在linux系统下检查postgresql数据库安装,登录数据库及简单的查看数据库

    1.    检查Linux系统是否安装数据库 首先查看自己的系统是否安装了postgresql数据库命令如下: rpm -qa | grep postgresql 如果没有显示查询结果(如下图所示)说 ...

随机推荐

  1. 【NLP】文本相似度

    http://www.ruanyifeng.com/blog/2013/03/cosine_similarity.html

  2. yield 举例

    示例代码: 神奇的地方在于yield返回的是一个IEumerable,可以直接枚举. // yield-example.cs using System; using System.Collection ...

  3. Python 多线程相关知识学习

    多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进 ...

  4. rpc框架thrift

    跨语言的rpc框架 新建一个thrift文件 # ping service demoservice PingService { string ping(), ping函数的返回类型是字符串} serv ...

  5. 【转】WCF OpenTimeout, CloseTimeout, SendTimeout, ReceiveTimeout

    关于这四个属性,在MSDN中的解释有点敷衍了事.Open/Close/Receive/Send本是HTTP/TCP/SOCKET的概念,Read/Write Operation则是Web Servic ...

  6. 在Linux上安装jdk,mysql,tomcat的准备工作

    准备工作: 因为JDK,TOMCAT,MYSQL的安装过程中需要从网上下载部分支持包才可以继续,所以要提前安装下载好下面四个依赖 yum install glibc.i686 yum -y insta ...

  7. win7+ oracle +php环境的搭建

    http://blog.csdn.net/chchmlml/article/details/6887326 先下载个wmpp1.7.5(之前在xp上也是这个,所以就继续),安装,一切顺利,打开phpi ...

  8. Python中的类(中)

    上一篇介绍了Python中类相关的一些基本点,本文看看Python中类的继承和__slots__属性. 继承 在Python中,同时支持单继承与多继承,一般语法如下: class SubClassNa ...

  9. 说说C与汇编之间的互相联系(转)

    在嵌入式系统开发中,目前使用的主要编程语言是C和汇编,C++已经有相应的编译器,但是现在使用还是比较少的.在稍大规模的嵌入式软件中,例如含有OS,大部分的代码都是用C编写的,主要是因为C语言的结构比较 ...

  10. sqlserver连接问题收集

    问题1. 使用navicat连接本地sqlserver,报错“命名管道提供程序无法打开与 sql server 的连接 [2]” 解决: 参考本篇文章 <持续收集中>