我有这个脚本,但我不知道如何获得打印输出中的最后一个元素:
cat /proc/cpuinfo | awk '/^processor/{print $3}'
最后一个元素应该是cpu数量减1。
我有这个脚本,但我不知道如何获得打印输出中的最后一个元素:
cat /proc/cpuinfo | awk '/^processor/{print $3}'
最后一个元素应该是cpu数量减1。
当前回答
这很简单。只需使用这个命令:
lscpu
其他回答
这个线程中的大多数答案都与逻辑核心有关。
在Ubuntu 18上使用BaSH。x,我发现这可以很好地确定物理cpu的数量:
numcpu="$(lscpu | grep -i 'socket(s)' | awk '{print $(2)}')"
它应该可以在大多数Linux发行版上运行。
dmidecode | grep -i cpu | grep Version
给我
版本:Intel(R) Xeon(R) CPU E5-2667 v4 @ 3.20GHz 版本:Intel(R) Xeon(R) CPU E5-2667 v4 @ 3.20GHz
这是正确的插座数量-查找E5-2667告诉我每个插座有8个核心,所以乘以,最终在2个插座上有16个核心。
lscpu给了我20个cpu -这是完全不正确的-不知道为什么。(cat /proc/cpu也一样-结果是20。
grep -c ^processor /proc/cpuinfo
将计算在/proc/cpuinfo中以“processor”开头的行数
对于具有超线程的系统,可以使用
grep ^cpu\\scores /proc/cpuinfo | uniq | awk '{print $4}'
它应该返回(例如)8(而上面的命令将返回16)
如果您只想计算物理内核,这个命令可以满足我的需要。
lscpu -e | tail -n +2 | tr -s " " | cut -d " " -f 4 | sort | uniq | wc -w
非常基本,但似乎是计算实际的物理内核,忽略了逻辑计数
使用下面的查询获取核心细节
[oracle@orahost](TESTDB)$ grep -c ^processor /proc/cpuinfo
8