通过kstat获取sun os上的总内存大小

通过kstat获取sun os上的总内存大小

我有 sun os 以下命令不可用

prtconf
prtdiag
psrinfo

唯一有效的命令是kstat.

任何人都可以帮我kstat在这台机器上仅使用命令来查找总内存大小吗?

答案1

physmem统计信息中的值将为system_pages您提供操作系统看到的页面数。您需要将此数字乘以默认页面大小,默认页面大小可以是 4K 或 8K,具体取决于您的架构:

$ kstat -n system_pages -p -s physmem |
    nawk -v pagesize=$(pagesize) '{print $2*pagesize/1024/1024 "MB"}'
4017.64MB

请注意,这可能与安装的 RAM 的实际大小不匹配,因为在操作系统启动之前,硬件可能已经占用了 RAM 的一部分。

答案2

您也许可以使用:

echo "::memstat" |mdb -k

答案3

还有lgrpinfo(手册页):

描述

lgrpinfo打印有关位置组 ( lgroup) 层次结构及其内容的信息。

Anlgroup表示一组 CPU 和类似内存的硬件设备,它们之间最多有一定的距离(延迟)。lgroups系统中的 所有 内容均由称为lgroupID 的唯一整数来标识。

lgroups组织成层次结构,以便于查找最近的资源。每个叶子lgroups都包含一组彼此最接近(本地)的资源。层次结构中的每个父级都lgroup包含其子级的资源lgroups以及其下一个最近的资源。最后,根lgroup包含域中最大延迟内的所有资源。

统一内存访问(UMA)机器简单地由根表示lgroup。非统一内存访问 (NUMA) 机器由 的层次结构表示,lgroups以显示相应的局部性级别。例如,具有两种延迟(本地和远程)的 NUMA 计算机具有lgroup由两个级别(叶和根)组成的层次结构。

...

在 Intel x86 机器上(统一内存访问),lgrpinfo不带任何参数将产生类似于

bash-4.1$ lgrpinfo
lgroup 0 (root):
    Children: none
    CPUs: 0-15
    Memory: installed 48G, allocated 15G, free 33G
    Lgroup resources: 0 (CPU); 0 (memory)
    Load: 0.0445
    Latency: 0

答案4

你有或者swapmdb

也许kstat :::physmem,这应该给你页数。 (大多数情况下,SPARC 上为 8K,x86 上为 4K)

相关内容