如何使用命令行获取 Solaris 中的物理内存使用情况

如何使用命令行获取 Solaris 中的物理内存使用情况

我需要在 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

相关内容