如果项目上限设置得太低,就没有足够的内存来保证工作负荷在正常情况下有效地执行。由于工作负荷需要更多内存而产生的分页操作会对系统性能造成负面影响。
上限设置得太高的项目可能会在超过其上限值之前占用可用物理内存。在这种情况下,物理内存由内核而不是 rcapd 进行有效管理。
在确定项目的上限时,应考虑到以下因素。
守护进程可以尝试在抽样使用率超过项目上限时降低项目工作负荷的物理内存使用率。在上限执行过程中,将使用交换设备和包含工作负荷映射的文件的其他设备。交换设备的性能是确定经常超过其上限的工作负荷的性能的重要因素。执行工作负荷类似于在具有等同于工作负荷上限的物理内存量的计算机上运行该工作负荷。
守护进程的 CPU 使用率随着它已设置上限的项目工作负荷中的进程数和工作负荷的地址空间大小而变化。
守护进程的少部分 CPU 时间用在对每个工作负荷使用情况进行的抽样上。向工作负荷中添加进程会增加对使用率进行抽样所用的时间。
守护进程的另一部分 CPU 时间用在超过上限时执行上限上。所用的时间与涉及的虚拟内存量成比例。所用的 CPU 时间会根据工作负荷的地址空间总大小的相应更改而延长或缩短。此信息在 rcapstat 输出的 vm 列中显示。有关更多信息,请参见使用 rcapstat 监视资源利用率和 rcapstat(1) 手册页。
rcapd 守护进程报告与其他进程共享的内存页的 RSS,或在与合理的准确估算同样的进程中的多次映射。如果不同项目中的进程共享同一内存,那么将为共享该内存的所有项目为 RSS 总数计算该内存。
估算可用于广泛使用共享内存的工作负荷(如数据库)。对于这些数据库工作负荷,您也可以使用 prstat 命令的 -J 或 -Z 选项的输出对项目的常规使用进行抽样,以便确定适当的初始上限值。有关更多信息,请参见 prstat(1M) 手册页。