系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones

确定项目的工作集大小

以下示例是前一示例的延续,它使用相同的项目。

前一示例显示 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) 手册页。