如何通过命令获取 Sun Solaris 的 CPU 数量?

如何通过命令获取 Sun Solaris 的 CPU 数量?

我可以使用“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

相关内容