Sun Solaris 中的内存利用率(百分比)?

Sun Solaris 中的内存利用率(百分比)?

我想以 % 百分比格式获取 Sun Solaris 系统中的内存利用率。

vmstat 1 1 | tail -1 | awk 'a=`/usr/sbin/prtconf|fgrep Memory|awk '{print $3*1024}'{ print 100-($5/$a)*100}'                                      

出现以下错误:

awk: syntax error near line 1
awk: bailing out near line 1

另外,请建议此查询是否有任何替代方案?

答案1

使用 Solaris awk(没有开关-v或允许设置变量),并使用原始查询开始,您可以执行以下操作:

可用内存百分比:

a=$(/usr/sbin/prtconf | /usr/bin/awk '/Memory/ {print $3*1024}'); vmstat 1 1 | tail -1 | awk "{print (\$5/$a)*100}"

已用内存百分比:

a=$(/usr/sbin/prtconf | /usr/bin/awk '/Memory/ {print $3*1024}'); vmstat 1 1 | tail -1 | awk "{print 100-(\$5/$a)*100}"

首先在 shell 中分配变量,然后vmstat使用 shell 变量替换执行查询。这需要在 中使用双引号awk并确保转义awk变量。你也不需要fgrepawk一起使用,awk就可以两者兼得。

在我可用的 Opensolaris 上进行了测试,所以 YMMV。

答案2

echo ::memstat | mdb -k

将生成内核、zfs、用户和空闲内存的使用百分比。

你需要成为root。

相关内容