我可以使用“prtdiag”通过 prtdiag 命令获取 CPU 数量。
$ prtdiag
System Configuration: Sun Microsystems sun4u Sun Fire 6800
System clock frequency: 150 MHz
Memory size: 4096 Megabytes
========================= CPUs
===============================================
CPU Run E$ CPU CPU
FRU Name ID MHz MB Impl. Mask
---------- ------- ---- ---- ------- ----
/N0/SB1/P2 6 1200 8.0 US-III+ 11.0
/N0/SB1/P3 7 1200 8.0 US-III+ 11.0
/N0/SB3/P2 14 1200 8.0 US-III+ 11.0
/N0/SB3/P3 15 1200 8.0 US-III+ 11.0
但是,我不知道是否有任何命令可以获取该数字(此示例中为 4)以让我的脚本使用它?
答案1
利用现代 CPU 及其多核、多线程技术,您需要更精确地定义要计算的内容,但就您而言,psrinfo
更适合这项工作:
psrinfo -p
请注意,这prtdiag
并非设计为可解析的,并且可能会根据硬件返回非常不同的输出。
答案2
下面是一组简单的管道使用方法psrinfo
:
psrinfo -v | grep ^Status | tail -1 | awk '{x = $5 + 1; print "CPUs: " x;}'
示例输出:
CPU:6
答案3
怎么样
prtdiag | grep -c "^/"
要在脚本中使用结果值,请使用$(prtdiag | grep -c "^/")
。
答案4
这是一个很好的脚本,可以查找所有 CPU、核心、虚拟 CPU(线程)
https://blogs.oracle.com/mandalika/entry/solaris_show_me_the_cpu