以下示例是前一示例的延续,它使用相同的项目。
前一示例显示 user1 项目使用的物理内存超过其上限所允许的内存量。此示例显示了项目工作负荷需要的内存量。
user1machine% rcapstat 5 5 id project nproc vm rss cap at avgat pg avgpg 376565 user1 3 6249M 6144M 6144M 690M 0K 689M 0K 376565 user1 3 6249M 6144M 6144M 0K 0K 0K 0K 376565 user1 3 6249M 6171M 6144M 27M 0K 27M 0K 376565 user1 3 6249M 6146M 6144M 4872K 0K 4816K 0K 376565 user1 3 6249M 6156M 6144M 12M 0K 12M 0K 376565 user1 3 6249M 6150M 6144M 5848K 0K 5816K 0K 376565 user1 3 6249M 6155M 6144M 11M 0K 11M 0K 376565 user1 3 6249M 6150M 10G 32K 0K 32K 0K 376565 user1 3 6249M 6214M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K |
在循环的中途,user1 项目的上限从 6 GB 增大到 10 GB。此增长会停止上限执行并允许驻留集大小增长(仅受计算机中的其他进程和内存量的限制)。rss 列可能会保持不变,以反映项目工作集大小 (working set size, WSS),在此示例中大小为 6247 M。这是允许项目进程在不会连续出现页面错误的情况下运行的最小上限值。
当 user1 的上限为 6 GB 时,在每隔 5 秒的抽样间隔内,由于 rcapd 会对某些工作负荷内存执行页出操作,因此 RSS 将减小,而 I/O 将增加。页出操作完成后不久,需要这些页面的工作负荷会在继续运行时再对这些页面执行页入操作。此循环会重复进行,直到在将近此示例的中途,上限增加到 10 GB。之后,RSS 保持在 6.1 GB。由于此时工作负荷的 RSS 低于上限,因此不再发生换页,还会停止与换页关联的 I/O。因此,项目需要 6.1 GB 来执行查看此项目时正在进行的工作。
另请参见 vmstat(1M) 和 iostat(1M) 手册页。