Linux Shell脚本查看NUMA信息
Nova在NFV场景下会提供NUMA相关高级特性,这里提供一个脚本查看计算节点的NUMA相关信息。
#!/bin/bash functionget_nr_processor() { grep'^processor'/proc/cpuinfo|wc-l } functionget_nr_socket() { grep'physicalid'/proc/cpuinfo|awk-F:'{ print$2|"sort-un"}'|wc-l } functionget_nr_siblings() { grep'siblings'/proc/cpuinfo|awk-F:'{ print$2|"sort-un"}' } functionget_nr_cores_of_socket() { grep'cpucores'/proc/cpuinfo|awk-F:'{ print$2|"sort-un"}' } echo'=====CPUTopologyTable=====' echo echo'+--------------+---------+-----------+' echo'|ProcessorID|CoreID|SocketID|' echo'+--------------+---------+-----------+' whilereadline;do if[-z"$line"];then printf'|%-12s|%-7s|%-9s|\n'$p_id$c_id$s_id echo'+--------------+---------+-----------+' continue fi ifecho"$line"|grep-q"^processor";then p_id=`echo"$line"|awk-F:'{print$2}'|tr-d''` fi ifecho"$line"|grep-q"^coreid";then c_id=`echo"$line"|awk-F:'{print$2}'|tr-d''` fi ifecho"$line"|grep-q"^physicalid";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; }elseif($1~/physicalid/){ gsub(//,"",$2); s_id=$2; arr[s_id]=arr[s_id]""p_id } } END{ for(iinarr) printf"Socket%s:%s\n",i,arr[i]; }'/proc/cpuinfo echo echo'=====CPUInfoSummary=====' echo nr_processor=`get_nr_processor` echo"Logicalprocessors:$nr_processor" nr_socket=`get_nr_socket` echo"Physicalsocket:$nr_socket" nr_siblings=`get_nr_siblings` echo"Siblingsinonesocket:$nr_siblings" nr_cores=`get_nr_cores_of_socket` echo"Coresinonesocket:$nr_cores" letnr_cores*=nr_socket echo"Coresintotal:$nr_cores" if["$nr_cores"="$nr_processor"];then echo"Hyper-Threading:off" else echo"Hyper-Threading:on" fi echo echo'=====END====='
查询结果示例:
=====CPUTopologyTable===== +--------------+---------+-----------+ |ProcessorID|CoreID|SocketID| +--------------+---------+-----------+ |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| +--------------+---------+-----------+ Socket0:456712131415 Socket1:0123891011 =====CPUInfoSummary===== Logicalprocessors:16 Physicalsocket:2 Siblingsinonesocket:8 Coresinonesocket:4 Coresintotal:8 Hyper-Threading:on =====END=====