性能管理指南
确定正在使用多少内存
几个性能工具提供内存使用情况的报告,最有兴趣的报告来自vmstat,ps,svmon。
Vmstat命令
vmstst命令总结了被系统中所有进程使用的全部的活动虚拟内存,就像在空闲列表上的实际内存页框的数量。使用实际上已经被触及的虚拟内存工作段页面的数量定义虚拟内存。它的数量可以大于机器中国实际内存叶的数量,因为一些活动的虚拟内存页可能已经被写入分页空间。
当判断是否一个系统可以短期的存在于内存中,或者是否需要调整一些内存时,超过一个设定的时间间隔运行vmstat命令,并且在报告结果中检查pi和po列。这些列显示每秒钟分页空间页面插入的数量和每秒钟页面空间换出的数量。如果值是非零常数,有可能是内存瓶颈。偶尔出现非零值不会有问题,因为分页是虚拟内存的主要原则。
# vmstat 2 10 kthr memory page faults cpu ----- ----------- ------------------------ ------------ ----------- r b avm fre re pi po fr sr cy in sy cs us sy id wa 1 3 113726 124 0 14 6 151 600 0 521 5533 816 23 13 7 57 0 3 113643 346 0 2 14 208 690 0 585 2201 866 16 9 2 73 0 3 113659 135 0 2 2 108 323 0 516 1563 797 25 7 2 66 0 2 113661 122 0 3 2 120 375 0 527 1622 871 13 7 2 79 0 3 113662 128 0 10 3 134 432 0 644 1434 948 22 7 4 67 1 5 113858 238 0 35 1 146 422 0 599 5103 903 40 16 0 44 0 3 113969 127 0 5 10 153 529 0 565 2006 823 19 8 3 70 0 3 113983 125 0 33 5 153 424 0 559 2165 921 25 8 4 63 0 3 113682 121 0 20 9 154 470 0 608 1569 1007 15 8 0 77 0 4 113701 124 0 3 29 228 635 0 674 1730 1086 18 9 0 73
请注意输出时的高I/O等待,和阻塞队列的线程数。
I/O等待很有可能是由于来自分页空间的页面换入换出。
要想查看系统的VMM是否有性能问题,检查内存和页面下的列:
----内存
提供实际内存和虚拟内存的信息。
----avm
avm(活动虚拟内存)列给出了被分配到分页空间的4K页面的平均数量。
Avm的值可以被用来计算分页空间分配给正在执行的进程的数量。
注:从AIX4.3.3开始,在报告此值时有一个细微的改变。见分页空间和虚拟内存的说明。
Avm字段的数除以256将会产生大约数M的空间分配给分页空间全系统。在AIX4.3.3之前,这样的信息反映在lsps -s命令的输出的被使用的百分比列或者是svmon -G命令。
----fre
Fre列显示空闲内存页面的平均数量。一个页面是一个4K的实际内存区域。系统维护一个内存页的缓冲区,称为空闲列表。当VMM需要空间时这将是容易获得的。VMM在空闲列表保持页面的最小数量是由vmtune命令的minfree参数决定的(详见vmtune命令调整VMM的页面替换)。
当应用程序终止时,其所有工作的网页立即返回到空闲列表。其持久页面(文件),但是,留在RAM中,并没有添加回空闲列表,直到它们被其他方案的VMM被盗。如果相应的文件被删除,持久页面也被释放。
为此,fre的值并不表示可以被进程现成使用的真正内存。如果需要一个页框,然后,有关终止应用程序的持久页面之间首先要移交到另一个程序。
如果fre的值远远大于maxfree的值,系统性能正在下降。颠簸意味着系统在不断的进行页面换入换出。然而,如果系统正在经历颠簸,你可以确定fre的值将会变小。
Page
页面错误和分页活动的信息。这些是平均的间隔,将以秒为单位给出。
re
注:在AIX 版本4中,回收将不再被支持,因为此值通过提高关于系统性能的有限信息由于保持回收轨道的算法从而抵消了对系统的负面影响。
Pi
Pi列记录了从分页空间被换入的页面的详细的数量。分页空间是驻留在磁盘上的虚拟内存的一部分。当内存over committed时被当做一个溢出。分页空间包含专用于从实际内存中被盗页的工作集页面的存储的逻辑卷。当一个盗页被进程引用时,一个页面出现故障,此页面必须从分页空间被读入内存。
由于各种的硬件配置,软件和应用程序,没有绝对的数字可以被看出来。但是,每秒每个分页空间5个页面换入应该是上限。本原则不应该被严格遵守,但可作为参考。此字段作为一个活动的分页空间的重要指标是重要的。如果有一个页面被换入,那么之前必须有一个页面被换出才可以。这也可能在一个内存受限的环境中,在这个环境中每一页将迫使不同的页面别盗出,然后,换出。但是,系统仍然可以正常工作,当1分钟内每秒接近10pi,然后不换入任何页面的工作。
po
Po列显示调出到分页空间的页面数。无论什么时候一个工作存储页面被盗出,被写入分页空间,如果它仍未被驻留在分页空间,或者如果它被修改。如果不再次被引用,它将会保留在页面设备上,直到系统结束或者声明了空间。当一个进程正常终止,任何分配给这个进程的分页空间将被释放。当系统正在读入一个重要的持久页的数字,你可以看到po列增长,而pi列却没有相应增加。这不一定表明颠簸,但可以保证调查应用程序的数据访问模式。
fr
在时间间隔内,通过页面置换算法每秒被替换的页面数。由于VMM页面替换例程扫描页面帧表(PFT),它使用的标准来选择哪些网页被窃取补充可用内存帧的空闲列表。这些标准包括两种页面,工作(计算)和文件(永久)页。仅仅因为一个页面已经被释放,这并不意味着,任何I / O已经发生。例如,如果一个持久存储(文件)的页面没有被修改,它不会被写入到磁盘。如果I / O是没有必要的,最小的系统资源需要释放页面。
sr
在时间间隔内,通过页面置换算法每秒被审查的页面数量。VMM的页面替换代码扫描的肺功能和抢断页,直到空闲列表上的帧的数量至少是maxfree的价值。页面替换代码扫描的肺功能可能有许多项,才可以盗页,足以满足空闲列表的要求。与稳定,不分段存储器,扫描率和清除率可能几乎相等。在多进程系统上使用不同的页面,页面更加波动和不相交,在这种情况下,扫描速度可能会大大超过自由速度。当fr:sr过高时,内存过量。当fr:sr为1:4时意味着每个页面是自由的,四个页面必须被检查。仅仅根据这个比例是很难确定内存限制的,依赖工作量/应用程序构成这么高的比例。
cy
时钟算法每秒的周期数。VMM使用称为时钟算法的技术选择要替换的页。这种技术充分利用每一页的引用位,作为哪些页最近被使用的指示。当页面窃取程序被调用,它循环的PFT,检查每一页的引用位。
Cy列显示页面置换算法每秒对PFT扫描多少次。因为空闲列表在没有对PFT进行彻底扫描的情况下可以被补充,因为所有的vmstat字段报告为整数,这一领域通常是零。如果不是零,则表明对一个PFT的完整扫描,stealer再次扫描PFT,因为fre一直小于maxfree的值。确定一个系统的RAM适量的方法之一是看vmstat命令报告AVM的最大价值。乘以4 K的字节数,然后比较。