如何检查Solaris 11机器的内存利用率?

如何检查Solaris 11机器的内存利用率?

我可以知道如何计算 Solaris 11.3 计算机的总内存利用率和百分比吗?

我下面的计算有错吗?或者任何其他方式?

memfree=$(vmstat 1 2 | awk '{print $5}' | tail -1)
memtotal=$(vmstat 1 2 | awk '{print $4}' | tail -1)
memused=$((memtotal-memfree))
mempercent=$((memused * 100 / memtotal))

操作系统版本是:SunOS 5.11 11.3 sun4v sparc


作为参考,vmstat(8)新安装的 Solaris 11.4 VM 上的输出vmstat 1 2如下所示:

root@solaris:~# vmstat 1 2
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr cd -- -- --   in   sy   cs us sy id
 0 0 0 4672456 2127260 342 1628 0 0 0 0  0 48  0  0  0  566 10129 2466 11 13 76
 0 0 0 4753212 830276 5 141  0  0  0  0  0  0  0  0  0  527 1205  469  2  5 93

答案1

Solaris 为此提供了 mdb dcmd:

root@solaris:~# mdb -k
Loading modules: [ unix genunix specfs dtrace mac cpu.generic uppc zvpsm scsi_vhci zfs zvblk ip hook neti arp usba kssl sockfs lofs random idm cpc crypto fcip fctl fcp ufs logindmux ptm nfs ipc ]
> ::memstat
Page Summary                            Pages             Bytes  %Tot
---------------------------- ----------------  ----------------  ----
Kernel                                 368046              1.4G    9%
ZFS                                   2236330              8.5G   53%
Anon                                   955993              3.6G   23%
Exec and libs                           95340            372.4M    2%
Page cache                              32844            128.2M    1%
Free (cachelist)                        61894            241.7M    1%
Free (freelist)                        443246              1.6G   11%
Total                                 4193693             15.9G

这可以在命令中使用,例如echo ::memstat|mdb -k如果您只想输出而不使用 mdb 提示符。

相关内容