以下示例使用项目 user1,此项目的 RSS 超过其 RSS 上限。
以下命令以 5 秒为抽样间隔生成 5 个报告。
user1machine% rcapstat 5 5
id project nproc vm rss cap at avgat pg avgpg 376565 user1 3 6249M 6144M 6144M 690M 220M 5528K 2764K 376565 user1 3 6249M 6144M 6144M 0M 131M 4912K 1637K 376565 user1 3 6249M 6171M 6144M 27M 147M 6048K 2016K 376565 user1 3 6249M 6146M 6144M 4872M 174M 4368K 1456K 376565 user1 3 6249M 6156M 6144M 12M 161M 3376K 1125K
user1 项目具有三个积极使用物理内存的进程。pg 列中的正值表示 rcapd 在尝试通过降低项目进程的物理内存使用率来满足上限要求时,始终对内存执行页出操作。但是,rcapd 无法成功保持 RSS 低于上限值。从不断变化却并未真正减小的 rss 值可以看出这一点。只要从内存中调出页面,工作负荷便会再次使用内存,于是 RSS 值将会再次回升。这意味着项目的所有驻留内存都在被使用,并且工作集大小 (working set size, WSS) 大于上限。因此,将会强制 rcapd 对某些工作集执行页出操作以满足上限要求。在这种情况下,系统将继续频繁出现缺页,并大量使用关联的 I/O,直到发生以下情况之一:
WSS 变小。
上限增加。
应用程序更改其内存访问模式。
在这种情况下,缩短抽样间隔可能会减小 RSS 值和上限值之间的差异,因为缩短抽样间隔会使rcapd 更频繁地对工作负荷进行抽样并执行上限。