在 Solaris 操作系统中,每进程资源限制的概念已扩展到第 2 章中所述的任务和项目实体。这些增强功能由资源控制 (resource control, rctl) 功能提供。此外,通过 /etc/system 可调参数设置的分配现在可以自动配置,也可以借助资源控制机制来配置。
资源控制由前缀 zone、project、task 或 process 标识。可以查看系统范围的资源控制。可以在正在运行的系统上更新资源控制值。
有关此发行版中提供的标准资源控制的列表,请参见可用的资源控制。有关可用的区域范围的资源控制的信息,请参见资源类型属性。
有关此发行版中提供的标准资源控制的列表,请参见可用的资源控制。
UNIX 系统一直以来都提供资源限制功能 (rlimit)。使用 rlimit 功能,管理员可以对进程可占用的资源设置一个或多个数值限制。这些限制包括每个进程使用的 CPU 时间、每个进程的核心转储文件大小以及每个进程的最大堆大小。堆大小是指为进程数据段分配的临时内存量。
资源控制功能提供了用于资源限制功能的兼容性接口。使用资源限制的现有应用程序将继续运行,不会更改。这些应用程序的观察方法,与修改之后可利用资源控制功能的应用程序的观察方法相同。
使用几种进程间通信 (interprocess communication, IPC) 之一,进程可以相互通信。使用 IPC,可以在进程之间传输和同步信息。在 Solaris 10 之前的发行版中,IPC 可调参数是通过向 /etc/system 文件中添加条目来设置的。现在,资源控制功能提供了可定义内核的 IPC 功能行为的资源控制。这些资源控制将替换 /etc/system 可调参数。
此 Solaris 系统上的 /etc/system 文件中可能包含过时参数。如果是这样,这些参数将像在以前的 Solaris 发行版中一样用来初始化缺省的资源控制值。但是,不推荐使用过时参数。
要查看哪些 IPC 对象在使用项目资源,请使用带有 -J 选项的 ipcs 命令。要查看示例显示,请参见如何使用 ipcs。有关 ipcs 命令的更多信息,请参见 ipcs(1)。
有关 Solaris 系统调优的信息,请参见《Oracle Solaris Tunable Parameters Reference Manual》。
资源控制提供了一种系统资源约束机制,可以防止进程、任务、项目和区域占用指定的系统资源量。此机制通过防止占用过多的资源,可使系统更易于管理。
约束机制可用于支持容量规划过程。有一种偶尔会用到的约束,它可以提供有关应用程序资源需求的信息,而不必拒绝为应用程序分配的资源。
资源控制还可以作为资源管理功能的简单属性机制。例如,可用于公平份额调度器 (fair share scheduler, FSS) 调度类中项目的 CPU 份额数由 project.cpu-shares 资源控制定义。由于此控制为项目指定了固定的份额数,因此,与超过控制有关的各项操作不相关联。在此上下文中,将 project.cpu-shares 控制的当前值视为指定项目的属性。
另一类型的项目属性用于控制附加到项目的进程集合对物理内存资源的消耗。这些属性具有前缀 rcap,例如 rcap.max-rss。与资源控制类似,此类型的属性也在 project 数据库中配置。但是,资源控制由内核同步执行,而资源上限则由资源上限执行守护进程 rcapd 在用户级别上异步执行。有关 rcapd 的信息,请参见第 10 章和 rcapd (1M)。
project.pool 属性用于指定项目的池绑定。有关资源池的更多信息,请参见第 12 章。