• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux Shell脚本查看NUMA信息

    Nova在NFV场景下会提供NUMA相关高级特性,这里提供一个脚本查看计算节点的NUMA相关信息。

    #!/bin/bash
    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    | 1     |
    +--------------+---------+-----------+
    | 1      | 1    | 1     |
    +--------------+---------+-----------+
    | 2      | 9    | 1     |
    +--------------+---------+-----------+
    | 3      | 10   | 1     |
    +--------------+---------+-----------+
    | 4      | 0    | 0     |
    +--------------+---------+-----------+
    | 5      | 1    | 0     |
    +--------------+---------+-----------+
    | 6      | 9    | 0     |
    +--------------+---------+-----------+
    | 7      | 10   | 0     |
    +--------------+---------+-----------+
    | 8      | 0    | 1     |
    +--------------+---------+-----------+
    | 9      | 1    | 1     |
    +--------------+---------+-----------+
    | 10      | 9    | 1     |
    +--------------+---------+-----------+
    | 11      | 10   | 1     |
    +--------------+---------+-----------+
    | 12      | 0    | 0     |
    +--------------+---------+-----------+
    | 13      | 1    | 0     |
    +--------------+---------+-----------+
    | 14      | 9    | 0     |
    +--------------+---------+-----------+
    | 15      | 10   | 0     |
    +--------------+---------+-----------+
    Socket 0: 4 5 6 7 12 13 14 15
    Socket 1: 0 1 2 3 8 9 10 11
    ===== CPU Info Summary =====
    Logical processors: 16
    Physical socket: 2
    Siblings in one socket: 8
    Cores in one socket: 4
    Cores in total: 8
    Hyper-Threading: on
    ===== END ===== 


    上一篇:8个实用的Shell脚本分享
    下一篇:Shell中判断字符串是否为数字的6种方法分享
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux Shell脚本查看NUMA信息 Linux,Shell,脚本,查看,NUMA,