1)内存使用率不存在正常不正常的概念。使用率1%~100%都可以是正常的。
aix、linux等操作系统的理念是,尽多占用内存,把文件缓存在内存中(在nmon上看叫FScache,在topas上看是noncomp非计算内存)
2)要看pgspin pgspout,是否经常有非0值。
如果是,则内存不足。
如果否,则存在两个分支
如果没有数据库,则内存是够的。
如果有数据库,那要看数据库够不够。比如总的物理内存20G,分16G给数据库,从pgspin pgspout看,一直是0,内存是够的,但可能数据库在跑大的压力,16G内存过少,导致数据库操作的响应时间比较长。
3)pageSpace使用率在0.3%左右。这个即使是100%也不足以判断内存是否不足。对于进程来说,当短期内存不足,占用pageSpace之后,即使分页被swap回物理内存,是不会释放pageSpace的分页的。即pageSpace使用率不下降。
收起你能否贴出计算内存使用率来看看?看物理内存总使用率没用的,内存本来就是用得越多越好,只要保证计算内存使用率不大于总量的90%即可,重点看computer memory%,这个没大于90%。交换分区没大于30%,就没事。
而且从你的贴图来看,没有占用很大内存的进程,无需担心。
收起题主所说的情况,还需要其他的信息才能判定系统性能是否存在问题。
单单就nmon看到的,不足以说明问题。
AIX的内存机制,VMM的一点工作原理:
内存和交换空间一般都是用页面来进行分配和管理的。在内存中存在两种类型的页面:计算页面(一般为可执行文件段中的页面)和文件页面(存储的数据文件的页面)。当我们执行程序或者读入数据的时候,内存中的页面就逐渐被占用。当空闲的内存只剩maxfree的时候,vmm的调页就被唤醒,通过调页算法,将内存中的页面转移到交换空间中。一直到空闲内存达到maxfree,才停止调页。
1) Minfree:最小空闲页链表尺寸。一旦低于该值,系统偷页以填充页链表,保证有足够的内存页面。偷页就是将不常用的页面替换出去。
2) Maxfree:最大空闲页链表尺寸。一旦高于该值,系统停止偷页。
另外,关于内存的使用,我们还有两个经常碰到的参数需要关注:
Minperm:用户I/O文件访问的最小缓冲区页数
Maxperm:用户I/O文件访问的最大缓冲区页数
Minperm和maxperm这两个参数的默认值分别为20%和80%。在这里主要与性能相关的是maxperm参数。maxperm参数指定了文件页面可以占用内存的上限,因为文件页面不主动释放,所以很容易造成内存的文件页面过高的占用,导致其他的应用内存使用紧张。
还可以使用vmstat、svmon、ps等命令进一步进行查看分析。如果是数据库服务器,还可以更根据占用内存较大的进程,去查找该进程具体在干什么事情,通过oradebug查看进程中具体运行的语句、过程等,以及所有的SQL的cpu消耗、内存占用、物理读、逻辑读、执行计划等信息。去进一步分析。判定。
收起