https://onitroad.com 更多教程

收集内存信息

获取内存信息是微不足道的。
对内存使用 prtconf 命令和 grem :

# prtconf | grep Memory
Memory size: 65536 Megabytes

我们还可以使用 prtdiag 命令来查找系统中的内存:

# prtdiag -v | grep Memory
    Memory size: 65536 Megabytes

收集CPU相关信息

查找物理/逻辑 CPU

要查找任何系统上的物理 CPU 数量,请在 psrinfo 命令中使用 -p 选项。
-p 选项可能不适用于 solaris 9 及更低版本。
在这种情况下,请使用 kstat 命令查找物理 CPU。

# psrinfo -p
2

如果我们需要更详细的输出,请使用 -v 和上述命令:

# psrinfo -pv
The physical processor has 64 virtual processors (0-63)
  UltraSPARC-T2+ (cpuid 0 clock 1165 MHz)
The physical processor has 64 virtual processors (64-127)
  UltraSPARC-T2+ (cpuid 64 clock 1165 MHz)

现在 psrinfo 或者 psrinfo -v 将显示所有逻辑/虚拟 CPU。
因此,在 T5240 的情况下,它将显示所有内核和 CPU 上的所有线程。

# psrinfo -v | more
Status of virtual processor 0 as of: 08/12/2009 12:01:00
  on-line since 08/08/2009 06:03:02.
  The sparcv9 processor operates at 1165 MHz,
        and has a sparcv9 floating point processor.
Status of virtual processor 1 as of: 08/12/2009 12:01:00
  on-line since 08/08/2009 06:03:05.
  The sparcv9 processor operates at 1165 MHz,
        and has a sparcv9 floating point processor.
Status of virtual processor 2 as of: 08/12/2009 12:01:00
  on-line since 08/08/2009 06:03:05.
  The sparcv9 processor operates at 1165 MHz,
        and has a sparcv9 floating point processor.
.........

要计算 T5240 中的线程总数,只需将 psrinfo 命令中的输出相加:

# psrinfo | wc -l
128

查看内核

要查找所有 CPU 的内核总数:

# kstat cpu_info|grep core_id|sort -u|wc -l
      16

现在要找到每个 CPU 的核心数,只需进行数学计算:核心总数/物理 CPU 总数

另一种收集 CPU 相关信息的方法是使用 prtdiag 命令:

# prtdiag -v | more
System Configuration:  Oracle Corporation  sun4v SPARC T2+
    Memory size: 65536 Megabytes

    ================================ Virtual CPUs     ================================

    CPU ID Frequency Implementation         Status
    ------ --------- ---------------------- ------
    0      1400 MHz  SPARC-T2+               on-line  
    1      1400 MHz  SPARC-T2+               on-line  
    2      1400 MHz  SPARC-T2+               on-line  
    3      1400 MHz  SPARC-T2+               on-line  
    ....

获取 CPU 和内核映射

这里的小脚本给出了服务器上的 CPU 和核心映射。
在 T5240 的情况下,它将显示哪个线程位于哪个 CPU 内核。

# cat cpu-core-mapping.sh
#!/bin/ksh
kstat cpu_info | 
    egrep "cpu_info |core_id" | 
    awk 
        'BEGIN { printf "%4s %4s", "CPU", "core" } 
         /module/ { printf "n%4s",  } 
         /core_id/ { printf "%4s", } 
         END { printf "n" }'

运行脚本的输出:

# ./cpu-core-mapping.sh
 CPU core
   0   0
   1   0
   2   2
   3   2
  40  40
  41  40
  42  42
  43  42
  .......

使用 LDOM 在 T 系列硬件上查找 CPU 信息

如果我们在 T 系列硬件上安装了 LDOM,则上述命令可能无法为我们提供正确的值。
使用“ldm list-devices -a”命令列出核心、虚拟 CPU (VCPU) 和资源分配。

# ldm list-devices -a
CORE ID    %FREE   CPUSET
    0       12      (0, 1, 2, 3, 4, 5, 6, 7)
    1       0       (8, 9, 10, 11, 12, 13, 14, 15)
    2       0       (16, 17, 18, 19, 20, 21, 22, 23)
    3       0       (24, 25, 26, 27, 28, 29, 30, 31)
    4       0       (32, 33, 34, 35, 36, 37, 38, 39)
    5       0       (40, 41, 42, 43, 44, 45, 46, 47)
    6       0       (48, 49, 50, 51, 52, 53, 54, 55)
    7       0       (56, 57, 58, 59, 60, 61, 62, 63)
    8       0       (64, 65, 66, 67, 68, 69, 70, 71)
...........................
如何在 Solaris 中查找物理/逻辑 CPU、内核和内存的数量

有时,收集 CPU 和内存信息会变得有点棘手,尤其是对于安装了 LDOM 的 t 系列硬件。
本文以T5240服务器为例,收集物理/逻辑CPU、内存等硬件信息。

日期:2020-09-17 00:15:15 来源:oir作者:oir