最近,领导看到一台aix的主机内存利用率99.9%,颇为震惊,让我查查。在此记录。

一、检查主机资源的概况

命令:topas

aix内存管理实践

这里看到计算空间的内存只占用了54%,没有使用到分页paging space。所以初步断定没有内存的瓶颈问题。

命令:svmon -G

aix内存管理实践

看到内存的分片是4K,有7330个分片空闲,那么空闲内存是7330*4K = 28M

当然也可以看svmon -P查看每个进程的内存占用情况。

因为为了提高 I/O 性能,如果应用程序或内核没有明确请求的话,AIX会用尽可能多的空闲内存进行文件缓存。


二、查看内存管理

命令:vmstat

aix内存管理实践

这里kthr表示kernel thread其中的r表示在一个cpu时间片中的线程数。b表示阻塞(等待)这里都是0,表示进程情况良好。

memory内存状态:avm是active virtual pages实际使用的内存 2833902*4k = 11069M;该内存和total的20G内存显然不是99.9%的关系。

paging space还是没有使用。

faults的值略微高,in表示device interrupts, sy表示system call,cs表示kernel thread context switches.

cpu利用情况:m 没有wait

命令:nmon,进入nmon后输入m

aix内存管理实践

最后在filesystemcache看到了99.9%的问题,系统因为IO频繁,系统将内存作为了文件的缓存,文件系统实际占用了44.8%的内存,造成了内存使用率99.9%。


参考文章:http://www.ibm.com/developerworks/cn/aix/library/au-memory_issue/