OpenStack cpu 1 : cpu 拓扑

1. cpu 拓扑

Node -> Socket -> Core -> Processor
  • Node :一组 CPU 。每个Node由一个或多个(物理)CPU组成,并且有独立的本地内存、I/O等资源。
  • Socket:插槽。一组 CPU 的封装,一般一颗“4 核 8 线程” 代表一个 Socket。
  • Core:核心。这里是 PC 机的 “4 核 8 线程” 的 4核
  • Processor :线程。这里是 PC 机的 “4 核 8 线程” 的 8线程

cpu 拓扑查看

node 查看

numactl --hardware
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 20 21 22 23 24 25 26 27 28 29
node 0 size: 65410 MB
node 0 free: 314 MB
node 1 cpus: 10 11 12 13 14 15 16 17 18 19 30 31 32 33 34 35 36 37 38 39
node 1 size: 65536 MB
node 1 free: 5202 MB
node distances:
node   0   1
  0:  10  21
  1:  21  10

查看有几个Socket

grep 'physical id' /proc/cpuinfo | awk -F: '{print $2 | "sort -un"}'
 0
 1

查看每个Socket有几个Processor

grep 'physical id' /proc/cpuinfo | awk -F: '{print $2}' | sort | uniq -c
     20  0
     20  1

查看Socket对应那几个Processor

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) 
        print arr[i];
}' /proc/cpuinfo | cut -c2-
0 1 2 3 4 5 6 7 8 9 20 21 22 23 24 25 26 27 28 29
10 11 12 13 14 15 16 17 18 19 30 31 32 33 34 35 36 37 38 39

查看Core

/proc/cpuinfo文件中的cpu cores表明一个socket中有几个cores,例如:

cat /proc/cpuinfo | grep 'core'  | sort -u
core id         : 0
core id         : 1
core id         : 10
core id         : 11
core id         : 12
core id         : 2
core id         : 3
core id         : 4
core id         : 8
core id         : 9
cpu cores       : 10

查看Processor

grep 'processor' /proc/cpuinfo | wc -l
40

信息汇总

#!/bin/bash

# Simple print cpu topology
# Author: kodango

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 ====='

汇总结果:

===== CPU Topology Table =====

+--------------+---------+-----------+
| Processor ID | Core ID | Socket ID |
+--------------+---------+-----------+
| 0            | 0       | 0         |
+--------------+---------+-----------+
| 1            | 1       | 0         |
+--------------+---------+-----------+
| 2            | 2       | 0         |
+--------------+---------+-----------+
| 3            | 3       | 0         |
+--------------+---------+-----------+
| 4            | 4       | 0         |
+--------------+---------+-----------+
| 5            | 8       | 0         |
+--------------+---------+-----------+
| 6            | 9       | 0         |
+--------------+---------+-----------+
| 7            | 10      | 0         |
+--------------+---------+-----------+
| 8            | 11      | 0         |
+--------------+---------+-----------+
| 9            | 12      | 0         |
+--------------+---------+-----------+
| 10           | 0       | 1         |
+--------------+---------+-----------+
| 11           | 1       | 1         |
+--------------+---------+-----------+
| 12           | 2       | 1         |
+--------------+---------+-----------+
| 13           | 3       | 1         |
+--------------+---------+-----------+
| 14           | 4       | 1         |
+--------------+---------+-----------+
| 15           | 8       | 1         |
+--------------+---------+-----------+
| 16           | 9       | 1         |
+--------------+---------+-----------+
| 17           | 10      | 1         |
+--------------+---------+-----------+
| 18           | 11      | 1         |
+--------------+---------+-----------+
| 19           | 12      | 1         |
+--------------+---------+-----------+
| 20           | 0       | 0         |
+--------------+---------+-----------+
| 21           | 1       | 0         |
+--------------+---------+-----------+
| 22           | 2       | 0         |
+--------------+---------+-----------+
| 23           | 3       | 0         |
+--------------+---------+-----------+
| 24           | 4       | 0         |
+--------------+---------+-----------+
| 25           | 8       | 0         |
+--------------+---------+-----------+
| 26           | 9       | 0         |
+--------------+---------+-----------+
| 27           | 10      | 0         |
+--------------+---------+-----------+
| 28           | 11      | 0         |
+--------------+---------+-----------+
| 29           | 12      | 0         |
+--------------+---------+-----------+
| 30           | 0       | 1         |
+--------------+---------+-----------+
| 31           | 1       | 1         |
+--------------+---------+-----------+
| 32           | 2       | 1         |
+--------------+---------+-----------+
| 33           | 3       | 1         |
+--------------+---------+-----------+
| 34           | 4       | 1         |
+--------------+---------+-----------+
| 35           | 8       | 1         |
+--------------+---------+-----------+
| 36           | 9       | 1         |
+--------------+---------+-----------+
| 37           | 10      | 1         |
+--------------+---------+-----------+
| 38           | 11      | 1         |
+--------------+---------+-----------+
| 39           | 12      | 1         |
+--------------+---------+-----------+

Socket 0: 0 1 2 3 4 5 6 7 8 9 20 21 22 23 24 25 26 27 28 29
Socket 1: 10 11 12 13 14 15 16 17 18 19 30 31 32 33 34 35 36 37 38 39

===== CPU Info Summary =====

Logical processors: 40
Physical socket: 2
Siblings in one socket:  20
Cores in one socket:  10
Cores in total: 20
Hyper-Threading: on

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容