查看Linux cpu信息

在linux系统下可以通过cat /proc/cpuinfo来查看本机上cpu的相关信息,通过processor可以判断逻辑cpu的个数,physical id可以判断物理cpu的个数,通过cpu cores来判断每个cpu内的核数,通过siblings和cpu cores的对比可以判断是否支持超线程。

[[email protected] ~]$ cat /proc/cpuinfo |grep processor|wc -l

32

通过以上命令可以判断本机内的逻辑cpu个数为32

[[email protected] ~]$ cat /proc/cpuinfo |grep physical\ id|sort|uniq

physical id     : 0

physical id     : 1

通过以上输出可以判断本机内物理cpu个数为2

[[email protected] ~]$ cat /proc/cpuinfo |grep cpu\ cores|uniq

cpu cores       : 8

通过以上输出可以判断单个cpu的核数为8

[[email protected] ~]# cat /proc/cpuinfo |grep sibling|uniq

siblings        : 16

通过以上输出的结果以及与cpu cores的比较可以确定本机支持超线程。

从以上结果我们最终可以确定本机上拥有2个物理cpu,每个cpu上有8个核,每个核上支持2个线程,从操作系统上通过top或者mpstat等监控命令可以看到有32个逻辑cpu。

写成脚本如下:

#!/bin/bash  
  
# Simple print cpu topology  
# Author: hashlinux  
  
function get_nr_processor()  
{  
    grep ‘^processor‘ /proc/cpuinfo | wc -l  
}  
  
function get_nr_socket()  
{  
    grep ‘physical id‘ /proc/cpuinfo | awk -F: ‘{  
            print $2 | "sort -un"}‘ | wc -l  
}  
  
function get_nr_siblings()  
{  
    grep ‘siblings‘ /proc/cpuinfo | awk -F: ‘{  
            print $2 | "sort -un"}‘  
}  
  
function get_nr_cores_of_socket()  
{  
    grep ‘cpu cores‘ /proc/cpuinfo | awk -F: ‘{  
            print $2 | "sort -un"}‘  
}  
  
echo ‘===== CPU Topology Table =====‘  
echo  
  
echo ‘+--------------+---------+-----------+‘  
echo ‘| Processor ID | Core ID | Socket ID |‘  
echo ‘+--------------+---------+-----------+‘  
  
while read line; do  
    if [ -z "$line" ]; then  
        printf ‘| %-12s | %-7s | %-9s |\n‘ $p_id $c_id $s_id  
        echo ‘+--------------+---------+-----------+‘  
        continue  
    fi  
  
    if echo "$line" | grep -q "^processor"; then  
        p_id=`echo "$line" | awk -F: ‘{print $2}‘ | tr -d ‘ ‘`   
    fi  
  
    if echo "$line" | grep -q "^core id"; then  
        c_id=`echo "$line" | awk -F: ‘{print $2}‘ | tr -d ‘ ‘`   
    fi  
  
    if echo "$line" | grep -q "^physical id"; then  
        s_id=`echo "$line" | awk -F: ‘{print $2}‘ | tr -d ‘ ‘`   
    fi  
done < /proc/cpuinfo  
  
echo  
  
awk -F: ‘{   
    if ($1 ~ /processor/) {  
        gsub(/ /,"",$2);  
        p_id=$2;  
    } else if ($1 ~ /physical id/){  
        gsub(/ /,"",$2);  
        s_id=$2;  
        arr[s_id]=arr[s_id] " " p_id  
    }  
}   
  
END{  
    for (i in arr)   
        printf "Socket %s:%s\n", i, arr[i];  
}‘ /proc/cpuinfo  
  
echo  
echo ‘===== CPU Info Summary =====‘  
echo  
  
nr_processor=`get_nr_processor`  
echo "Logical processors: $nr_processor"  
  
nr_socket=`get_nr_socket`  
echo "Physical socket: $nr_socket"  
  
nr_siblings=`get_nr_siblings`  
echo "Siblings in one socket: $nr_siblings"  
  
nr_cores=`get_nr_cores_of_socket`  
echo "Cores in one socket: $nr_cores"  
  
let nr_cores*=nr_socket  
echo "Cores in total: $nr_cores"  
  
if [ "$nr_cores" = "$nr_processor" ]; then  
    echo "Hyper-Threading: off"  
else  
    echo "Hyper-Threading: on"  
fi  
  
echo  
echo ‘===== END =====‘

参考资料:

http://www.qingran.net/2011/09/numa%E5%BE%AE%E6%9E%B6%E6%9E%84/

http://www.searchtb.com/2012/12/%E7%8E%A9%E8%BD%ACcpu-topology.html

http://kodango.com/cpu-topology

时间: 2024-09-29 18:56:58

查看Linux cpu信息的相关文章

CentOS中查看物理CPU信息的方法

CentOS中查看物理CPU信息的方法 1.概念 [1]物理CPU:实际Server中插槽上的CPU个数.物理cpu数量:可以数不重复的 physical id 有几个.[2]逻辑CPULinux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的信息内容分别列出了processor 0 – n 的规格.这里需要注意,如果你认为n就是真实的cpu数的话, 就大错特错了一般情况,我们认为一颗cpu可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一

如何查看Linux cpu核数、版本等信息

CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 1.查看CPU信息(型号): [[email protected] ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c24  Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz 2.查查物理cpu个数: [[email protected] ~]# cat /proc

查看linux硬件信息

more /proc/cpuinfo more /proc/meminfo more /proc/*info lspci 查看主板信息等cat /proc/cpuinfo CPU信息cat /proc/meminfo 内存信息 Ubuntu 查看磁盘空间大小命令 df -h Df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式: df -hl 显示格式为: 文件系统 容量 已用 可用 已用% 挂载点 Filesystem Size Used Avail

linux cpu 信息分析

在 Linux 下如何查看 CPU 信息呢?只要查看 /proc/cpuinfo 文件就好了. cat /proc/cpuinfo 在我的电脑下得到如下结果: 其中包含了很多信息,比较重要的字段是: processor  逻辑处理器的 id,从 0 开始 physical id 物理处理器的 id,从 0 开始,可以判断电脑中有多少个 CPU core id 每个核心的 id cpu cores 位于同一个物理处理器中的内核数量,可以看到每个 CPU 有几个物理核 siblings 位于同一个物

查看linux 硬件信息

1.查看机器所有硬件信息: dmidecode |more 2.查看CPU信息 方法一: cat /proc/cpuinfo 方法二: 采用命令 dmesg | grep CPU 可以查看到相关CPU的启动信息 查看CPU的位数: getconf LONG_BIT 3.查看Mem信息 cat /proc/meminfo free -m top 4.查看磁盘信息 方法一: fdisk -l 可以看到系统上的磁盘(包括U盘)的分区以及大小相关信息. 方法二: 直接查看 cat /proc/parti

查看Linux版本信息

显示操作系统相关信息 # uname -a 查看Linux内核版本 # cat /proc/version 查看Linux版本 # lsb_release -a

查看主机CPU信息

一.关于CPU的几个概念 CPU的作用 计算机中的中央处理单元(CPU)执行基本的计算工作 -- 运行程序.但是,一个单核的CPU同一时间只能一次执行一个任务,为了提高计算机的处理能力,也就出现了多CPU,超线程(HT)和多核CPU的技术. 大多数计算机只有一个物理CPU.单个CPU可能具有多个内核或超线程技术,但是仍然只有一个物理CPU插入主板上的单个CPU插槽.在超线程和多核CPU出现之前,人们试图通过添加额外的CPU,为计算机增加额外的处理能力.这需要一个带有多个CPU插槽的主板 --将多

查看linux服务器信息

1.  vmstat 查看服务器内存,CPU等信息 一般是通过两个数字参数来完成的,第一个参数是采样时间间隔,单位是秒, 第二个参数是采样的次数 r:    表示运行队列,如果队列过大说明CPU很繁忙,一般会造成CPU使用率高 b:    表示阻塞的进程数 swap:  虚拟内存已使用的大小,如果大于0,说明机器的物理内存不够了 free:  空闲的物理内存大小 buff:   系统占用的缓存大小(写缓存) cache:  直接用来记忆我们打开的文件,给文件做缓冲,读缓存 si:     每秒从

查看Linux相关信息

1."uname -a ",可显示电脑以及操作系统的相关信息. 2."cat /proc/version",说明正在运行的内核版本. 3."cat /etc/issue", 显示的是发行版本信息. 4."dmidecode", 显示的是服务器型号.