跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理 Oracle Solaris 11 Information Library (简体中文) |
19. 安装、引导、关闭、停止、卸载和克隆非全局区域(任务)
23. 迁移 Oracle Solaris 系统和迁移非全局区域(任务)
24. 关于安装了区域的 Oracle Solaris 11 系统上的自动安装和软件包
25. Oracle Solaris Zones 管理(概述)
26. 管理 Oracle Solaris Zones(任务)
28. 各种 Oracle Solaris Zones 问题的故障排除
29. Oracle Solaris 10 Zones 介绍
30. 评估 Oracle Solaris 10 系统和创建归档文件
31. (可选)将 Oracle Solaris 10 native 非全局区域迁移到 Oracle Solaris 10 Zones
您可以使用 rcapadm 命令配置资源上限设置守护进程。可以执行以下操作:
设置上限执行的阈值
设置 rcapd 执行操作的间隔
启用或禁用资源上限设置
显示已配置的资源上限设置守护进程的当前状态
要配置守护进程,必须是超级用户或者具有所需的管理权限。
可以根据配置间隔(请参见rcapd 操作间隔)或者在需要时通过发送 SIGHUP(请参见 kill(1) 手册页),将配置更改并入 rcapd。
如果使用时不带参数,rcapadm 将显示资源上限设置守护进程(如果已配置)的当前状态。
以下各小节将讨论上限执行、上限值以及 rcapd 操作间隔。
可以在配置区域时通过设置 capped-memory 资源,来控制该区域的驻留集大小 (resident set size, RSS) 的使用情况。有关详细信息,请参见物理内存控制和 capped-memory 资源。要使用 capped-memory 资源,必须在全局区域中安装 resource-cap 软件包。可以在区域(包括全局区域)内运行 rcapd,以便对该区域中的项目执行内存上限。
您可以为指定区域可占用的最大内存量设置一个临时上限(该值可持续到下次重新引导)。请参见如何为区域指定临时资源上限。
如果要在某个区域中使用 rcapd 来控制已定义资源上限的项目中运行的进程所占用的物理内存,则必须在这些区域中配置该守护进程。
为位于不同的区域中的应用程序选择内存上限时,通常不必考虑这些应用程序驻留在不同的区域中。但每区域服务则例外。每区域服务会占用内存。在确定系统的物理内存量和内存上限时,必须考虑此内存占用情况。
内存上限执行阈值是系统中触发上限执行的物理内存使用百分比。当系统超过此使用率时,便会执行上限。应用程序和内核使用的物理内存包括在此百分比中。此使用百分比确定执行内存上限的方式。
在执行上限时,会对项目工作负荷中的内存执行页出操作。
可以对内存执行页出操作,以减小给定工作负荷超过其上限的内存部分的大小。
可以对内存执行页出操作,以减小超过系统内存上限执行阈值的所用物理内存部分的大小。
某个工作负荷最多可以使用大小等于其上限的物理内存。只要系统内存使用率低于内存上限执行阈值,工作负荷便可使用更多的内存。
要设置上限执行值,请参见如何设置内存上限执行阈值。
如果项目上限设置得太低,就没有足够的内存来保证工作负荷在正常情况下有效地执行。由于工作负荷需要更多内存而产生的分页操作会对系统性能造成负面影响。
上限设置得太高的项目可能会在超过其上限值之前占用可用物理内存。在这种情况下,物理内存由内核而不是 rcapd 进行有效管理。
在确定项目的上限时,应考虑到以下因素。
守护进程可以尝试在抽样使用率超过项目上限时降低项目工作负荷的物理内存使用情况。在上限执行过程中,将使用交换设备和包含工作负荷映射的文件的其他设备。交换设备的性能是确定经常超过其上限的工作负荷的性能的重要因素。执行工作负荷类似于在具有等同于工作负荷上限的物理内存量的计算机上运行该工作负荷。
守护进程的 CPU 使用率随着它已设置上限的项目工作负荷中的进程数和工作负荷的地址空间大小而变化。
守护进程的少部分 CPU 时间用在对每个工作负荷使用情况进行的抽样上。向工作负荷中添加进程会增加对使用率进行抽样所用的时间。
守护进程的另一部分 CPU 时间用在超过上限时执行上限上。所用的时间与涉及的虚拟内存量成比例。所用的 CPU 时间会根据工作负荷的地址空间总大小的相应更改而延长或缩短。此信息在 rcapstat 输出的 vm 列中显示。有关更多信息,请参见使用 rcapstat 监视资源利用率和 rcapstat(1) 手册页。
rcapd 守护进程报告与其他进程共享的内存页的 RSS,或在与合理的准确估算同样的进程中的多次映射。如果不同项目中的进程共享同一内存,那么将为共享该内存的所有项目为 RSS 总数计算该内存。
估算可用于广泛使用共享内存的工作负荷(如数据库)。对于这些数据库工作负荷,您也可以使用 prstat 命令的 -J 或 -Z 选项的输出对项目的常规使用进行抽样,以便确定适当的初始上限值。有关更多信息,请参见 prstat(1M) 手册页。
您可以调整 rcapd 所执行的定期操作的间隔。
所有间隔都以秒为单位指定。下表介绍了 rcapd 操作及其缺省间隔值。
|
要调整间隔,请参见如何设置操作间隔。
扫描间隔控制 rcapd 查找新进程的频率。在运行有多个进程的系统上,完全扫描这些进程列表会花费较多时间,因此,最好可以延长间隔,以便缩短所用的总 CPU 时间。但是,扫描间隔也代表进程为了纳入具有上限的工作负荷而必须存在的最短时间。如果工作负荷运行多个短期进程,则在延长扫描间隔的情况下,rcapd 无法将进程纳入工作负荷。
使用 rcapadm 配置的抽样间隔是指,在对工作负荷使用情况进行抽样和执行上限(如果超过该上限)这两个操作之间 rcapd 等待的最短时间。如果缩短此间隔,在多数情况下,rcapd 会更频繁地执行上限,从而可能会因换页导致 I/O 增加。但是,较短的抽样间隔也可以减小特定工作负荷的物理内存使用情况突然增加而给其他工作负荷带来的影响。抽样之间的窗口(其中,工作负荷可能不受限制地占用内存并且可能从其他具有上限的工作负荷中获取内存)会缩小。
如果为 rcapstat 指定的抽样间隔小于使用 rcapadm 为 rcapd 指定的间隔,则某些间隔的输出可能为零。发生这种情况是因为 rcapd 更新统计信息的间隔大于使用 rcapadm 指定的间隔。使用 rcapadm 指定的间隔与 rcapstat 所用的抽样间隔无关。