「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)を取得できるコマンドがあるかどうかはわかりません。
最新のCPUとそのマルチコア、マルチスレッドテクノロジーでは、カウントする対象をより正確に定義する必要がありますが、この場合はpsrinfo
の方が適しています。
psrinfo -p
prtdiag
は解析可能に設計されておらず、ハードウェアによっては非常に異なる出力を返す可能性があることに注意してください。
psrinfo
を使用した簡単なパイプのセットを次に示します。
psrinfo -v | grep ^Status | tail -1 | awk '{x = $5 + 1; print "CPUs: " x;}'
出力例:
CPU:6
いかがですか
_prtdiag | grep -c "^/"
_
結果の値をスクリプトで使用するには、$(prtdiag | grep -c "^/")
を使用します。
すべてのCPU、コア、仮想CPU(スレッド)を見つけるのに適したスクリプトは次のとおりです
https://blogs.Oracle.com/mandalika/entry/solaris_show_me_the_cp