在linux系统中,提供了/proc目录下文件,显示系统的软硬件信息。如果想了解系统中CPU的提供商和相关配置信息,则可以查/proc/cpuinfo。但是此文件输出项较多,不易理解。例如我们想获取,有多少颗物理CPU,每个物理cpu核心数,以及逻辑cpu和超线程等信息,下面我们就看来一步一步的去探索。

  首先要明确物理CPU、核数、逻辑cpu数的概念

①物理CPU数(physical id):主板上实际插入的cpu数量,可以数不重复的 physical id 有几个

②CPU核心数(cpu cores):单块CPU上面能处理数据的芯片组的数量,如双核、四核等

③逻辑CPU数:一般情况下,

  逻辑CPU=物理CPU个数×每颗核数       #不支持超线程技术或没有开启次技术

  逻辑CPU=物理CPU个数×每颗核数 *2     #表示服务器的CPU支持超线程技术(简单来说,它可使处理器中的1 颗内核如2 颗内核那样在操作系统中发挥作用。这样一来,操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能)

第一部分cpuinfo文件内容,涉及的项目解读

  话不多少,看图说话。下图是我负责维护的一台服务器的CPU信息。使用cat  /proc/cpuinfo。足足输出1500+条记录。其中内容均和下图相似,不同的是“:”右边的信息不同。

  下面对上图的输出内容进行相应解释

processor :系统中逻辑处理核心数的编号,从0开始排序。

vendor_id :CPU制造商

cpu family :CPU产品系列代号

model   :CPU属于其系列中的哪一代的代号

model name:CPU属于的名字及其编号、标称主频

stepping  :CPU属于制作更新版本

cpu MHz  :CPU的实际使用主频

cache size :CPU二级缓存大小

physical id :单个物理CPU的标号

siblings :单个物理CPU的逻辑CPU数。siblings=cpu cores [*2]。

core id :当前物理核在其所处CPU中的编号,这个编号不一定连续。

cpu cores :该逻辑核所处CPU的物理核数。比如此处cpu cores 是4个,那么对应core id 可能是 1、3、4、5。

apicid :用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续

fpu :是否具有浮点运算单元(Floating Point Unit)

fpu_exception :是否支持浮点计算异常

cpuid level :执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容

wp :表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)

flags :当前CPU支持的功能

bogomips:在系统内核启动时粗略测算的CPU速度

clflush size :每次刷新缓存的大小单位

cache_alignment :缓存地址对齐单位

address sizes :可访问地址空间位数

power management :对能源管理的支持

第二部分快速查询想要获取的信息

①查询系统有几颗物理CPU:cat  /proc/cpuinfo | grep "physical id" |sort |uniq

②查询系统每颗物理CPU的核心数:cat /proc/cpuinfo | grep "cpu cores" | uniq

③查询系统的每颗物理CPU核心是否启用超线程技术。如果启用此技术那么,每个物理核心又可分为两个逻辑处理器。

  cat /proc/cpuinfo | grep -e "cpu cores"  -e "siblings" | sort | uniq

  

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

④查询系统具有多少个逻辑CPU:cat /proc/cpuinfo | grep "processor" | wc -l

补充一个小知识

查看linux是物理机还是虚拟机:dmidecode -s system-product-name

如果有写的错的地方,欢迎指正,联系吴西鑫。

linux服务器cpu信息查看详解的更多相关文章

  1. Linux top命令中CPU信息的详解(转)

    add by zhj: 下面的文章解释的很好了,这里再说明一下top命令中wa的含义,我们知道,当IO阻塞时,操作系统会把进程改为阻塞态,将CPU调度到运行其它进程. CPU在空闲状态下,会检查是否有 ...

  2. [转载]查看Linux系统硬件信息实例详解

    linux查看系统的硬件信息,并不像windows那么直观,这里我罗列了查看系统信息的实用命令,并做了分类,实例解说. cpu lscpu命令,查看的是cpu的统计信息. blue@blue-pc:~ ...

  3. 部署WEB项目到服务器(一)安装java到linux服务器(Ubuntu)详解

    突发奇想,想在自己电脑上部署一个web网站. 1,首先要下载一个适合已经安装的linux系统的java版本. 登录网址:http://www.oracle.com/technetwork/java/j ...

  4. 部署WEB项目到服务器(三)安装mysql到linux服务器(Ubuntu)详解

    突发奇想,想在自己电脑上部署一个web网站. 1,首先是下载一个适合自己已安装服务器版本的mysql数据库. 这里使用网上的链接http://dev.mysql.com/downloads/mysql ...

  5. linux服务器进程信息查看命令

    #lsof 列出当前系统打开文件,常与-i选项使用,用于查看某个端口被哪个程序占用 [root@bogon ~]# lsof -i:80 COMMAND PID USER FD TYPE DEVICE ...

  6. 安装Nginx到linux服务器(Ubuntu)详解

    先去下载一个nginx放到服务器. 然后解压(可参考前面安装tomcat)编译(./configure --prefix=/usr/local/nginx/server/ && mak ...

  7. 部署WEB项目到服务器(二)安装tomcat到linux服务器(Ubuntu)详解

    突发奇想,想在自己电脑上部署一个web网站. 1,先去tomcat官网下载一个适合linux的版本:tar.gz 2,然后通过FileZIlla传到服务器的/opt目录: 3,然后创建目录 并解压缩 ...

  8. 部署WEB项目到服务器(四)部署WEB项目Forum到linux服务器(Ubuntu)详解

    突发奇想,想在自己电脑上部署一个web网站. 1,使用Navicat for MYSQL客户端创建WEB项目数据库: Navicat for MYSQL连接虚拟机中的mysql数据库 启动mysql数 ...

  9. 查看linux服务器CPU相关

    查看linux服务器CPU相关: 1.查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 2.查看 ...

随机推荐

  1. C# leetcode 之 096 不同的二叉搜索树

    C# leetcode 之 096 不同的二叉搜索树 题目描述 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 二叉搜索树定义 左子树上所有节点的值小于根节点, 右子树上左右 ...

  2. 修改linux系统history命令的条数和格式

    在一次测试环境遇到的情况,发现服务莫名其妙挂了,以为服务有bug,查了一下午,后来一个同事说,是我把服务关了啊.... 是可忍孰不可忍,原生的history命令,只能看到输入的命令历史,看不到什么时候 ...

  3. .net调用阿里短信接口

    一.创建一个空的api项目 二.应用阿里的短信包 aliyun-net-sdk-core 三.登录阿里添加签名和模板 四.创建创建AccessKey 注意 AccessKey创建后,无法再通过控制台查 ...

  4. 知否知否,VS Code 不止开源

    VS Code, 昨夜始于“开源”,如今“开源”深处渡. 读者看到这句话,也许会有疑惑,为什么两个“开源”都加上了双引号? 其实是笔者有意为之,因为这个两个“开源”的意义有着很大的差别,第一个“开源” ...

  5. MIT线性代数:8.求解Ax=b,可解性和结构

  6. 天天玩微信,Spring Boot 开发私有即时通信系统了解一下

    1/ 概述 利用Spring Boot作为基础框架,Spring Security作为安全框架,WebSocket作为通信框架,实现点对点聊天和群聊天. 2/ 所需依赖 Spring Boot 版本 ...

  7. zookeeper能干啥

    在Zookeeper的官网上有这么一句话:ZooKeeper is a centralized service for maintaining configuration information, n ...

  8. ie浏览器兼容性的入门解决方案

    IE浏览器的兼容性素来是令人头疼的问题,大名鼎鼎的FUCK-IE不是浪得虚名的. 这里使用的解决方案是HACK,具体原理就是针对不同的浏览器写不同的HTML.CSS样式,从而使各种浏览器达到一致的渲染 ...

  9. Java环境变量配置教程

    Windows 10  Java环境变量配置教程 目前Windows 10系统已经很成熟,大多数人开发都在Windows 10系统下进行开发,于是乎我做一下Java环境变量在Windows 10配下的 ...

  10. getchar()用法 【转】

    1.从缓冲区读走一个字符,相当于清除缓冲区 2.前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致),所以如果不在此加一个getchar()把这个回车符 ...