我需要在 Solaris 中显示物理内存统计信息,例如总内存、已用内存和可用内存。不想创建脚本,那么是否可以仅使用命令行获取所有这些详细信息?
答案1
要查看已安装的内存,您可以使用以下命令:
$ prtconf | grep Memory
Memory size: 65408 Megabytes
还有prtdiag -v | grep Memory
。
其他方法如下所示:Solaris 10 上的已用内存。
答案2
内存管理很复杂。例如,在 vmstat 中,您将看到一列sr
,它是扫描速率。当 Solaris 服务器开始内存不足时,它会开始扫描页面,该值显示其扫描速度。如果您有一个内存关键型应用程序,那么该值必须为 0,否则您需要添加更多内存。
回到你原来的问题,这就是你正在寻找的,它需要以 root 身份运行:
root@vru-ws1 # echo "::memstat" | mdb -k
Page Summary Pages MB %Tot
------------ ---------------- ---------------- ----
Kernel 677215 5290 16%
ZFS File Data 2280669 17817 55%
Anon 1004294 7846 24%
Exec and libs 39636 309 1%
Page cache 4279 33 0%
Free (cachelist) 20806 162 0%
Free (freelist) 101869 795 2%
Total 4128768 32256
root@vru-ws1 #
但与所有记忆一样,这需要解释。例如,ZFS 使用了 55% 的 RAM,但说实话,它可以少用很多,因为它可以使用它。如果有其他需要,操作系统将减少 ZFS 的文件数据;到一定程度,超过该程度就会影响 ZFS 性能。如果有人希望我进一步详细说明,我很乐意这样做。
最后,Oracle 有一个优秀的文章其中涵盖了这一点以及更多内容。您需要登录 Oracle 支持,但不需要订阅。
答案3
root@solaris11:~# vmstat -p
memory page executable anonymous filesystem
swap free re mf fr de sr epi epo epf api apo apf fpi fpo fpf
3430236 2679108 67 533 0 0 127 0 0 0 0 0 0 0 0 0