问题:我们如何在 AIX 6 上使用nmon或vmstat或svmon报告实际内存使用情况(没有缓存!)?
纳米:
虚拟机状态:
支持:
就像在 Linux 上一样,我们可以使用 free 命令,但它在 AIX 中不可用:
[user@notebook ~]$ free -m
total used free shared buffers cached
Mem: 7797 4344 3453 0 219 2745
-/+ buffers/cache: 1379 6417
Swap: 2047 0 2047
[user@notebook ~]$ free -m | grep cache: | awk '{print $3}'
1379
[user@notebook ~]$
Run Code Online (Sandbox Code Playgroud)
简短版本:如果您想了解所有文件缓存,请查看输出中的 in use clnt
+ pers
pages svmon -G
(单位为 4k 页),或者查看vmstat -v
并查看文件缓存的“文件页面”,不包括可执行文件(相同单位)。
如果您想很好地了解正在发生的事情,您应该查看以下文章:AIX 页面替换概述。
简而言之,AIX 中的内存分为两种方式:
工作记忆与永久记忆
工作内存是进程(堆栈、堆、共享内存)和内核内存。如果这种内存需要被页出,它就会进行交换。
永久内存是文件缓存。如果需要调出,它会返回到它来自的文件系统(对于脏页面,干净的页面会被回收)。这被细分为 JFS 文件系统的非客户端(或持久)页面,以及 JFS2、NFS 和其他可能的客户端页面。
计算与非计算页面。
计算页面又是进程和内核数据,加上进程文本数据(即缓存可执行文件/代码的页面)。
非计算性是其他的:不可执行的文件缓存(或共享库)。
svmon -G
(顺便说一句,svmon -G -O unit=MB
有点友好)为您提供工作与永久页面。该work
列是工作记忆。您可以通过将pers
(JFS) 和clnt
(JFS2) 列相加来获得永久内存。
In your case, you've got about 730MB of permanent pages, that are backed by your filesystems (186151*4k pages).
Now the topas
top-right "widget" FileSystemCache (numperm)
shows something slightly different, and you'd get that same data with vmstat -v
: that's only non-computational permanent pages. i.e. same thing as above, but excluding pages for executables.
In your case, that's about 350MB (2.2% of 16G).
Either way, that's really not much cache.