安装和管理 Solaris Container Manager 1.1

资源管理

通常情况下,资源代表可进行进程绑定的 OS 实体。更具体地讲,资源是指由提供某种形式划分的内核子系统所构造的对象。资源还可以看作是计算系统的一个方面,可以对其进行处理以影响应用程序的行为。资源的实例包括: 物理内存、CPU 或网络带宽。

Container Manager 与 Solaris 8、Solaris 9 和 Solaris 10 发行版中的资源管理实用程序兼容。在 Solaris 8 发行版中,由 Solaris Resource Manager 1.3 提供资源管理实用程序。每一服务都由一个 lnode 表示。lnode 用来记录资源分配策略和随之产生的资源使用数据。lnode 与 UNIX 用户 ID (UID) 相对应。默认状态下,UID 可以代表个人用户和应用程序。关于 lnode 和资源管理的详细信息,请参阅《Solaris Resource Manager 1.3 系统管理指南》中的“限制节点概述”

在 Solaris 9 和 Solaris 10 发行版中,由资源管理器提供资源管理实用程序。在这一发行版中,项目的概念与 lnode 相似。项目为相关任务提供网络管理标识符。运行在一个容器中的所有进程具有同一个标识符,也称作项目 ID。Solaris 内核通过该项目 ID 跟踪资源使用情况。通过使用扩展核算(使用同一跟踪方法),可以收集历史数据。在 Container Manager 中,项目代表容器。

图 1–3 多个项目处于一个主机上的实例

显示了多个项目处于一个主机上的示意图。周围的文本描述了环境。

通过 Container Manager GUI 可以了解与运行在容器中的进程有关的信息。使用本软件创建和管理容器时,数据收集过程对于用户来讲是透明的。

创建容器限制的方法有两种。一种方法是使用资源池来对系统进行分区。另一种方法是通过资源控制在项目上建立限制。

资源池

资源池也称为,是一种 Solaris 9 和 Solaris 10 软件配置机制,可用于对主机资源进行分区。资源集就是一组与进程绑定的资源。举例来讲,内存集和处理器集都属于资源集。目前,在 Solaris 9 和 Solaris 10 发行版中只有处理器集可用。资源池绑定了主机上可用的各种资源集。

一个资源池可以容纳一个或多个项目。如果只有一个项目,则链接到池的资源专属于这一项目。如果同时存在多个项目,则链接到池的资源由这些项目共享。

在 Solaris 10 操作系统中,本产品具有一项称为动态资源池的功能。通过动态资源池,您可以按照系统事件和负荷变化来调整每个池的资源配置,以获得更好性能。动态资源池对此功能进行了介绍。

如果运行在 Solaris 8 操作系统上,一个主机只能拥有一个资源池。 此资源池称为 pool_default。由于此 OS 发行版不具有资源池,因此需要以手动方式创建 pool_default。在运行 Solaris 8 发行版的主机上,所有 CPU 通常被视为位于单个池内。

关于使用 Container Manager 管理资源池的详细信息,请参阅第 5 章,管理资源池

资源控制

当将多个项目绑定在一个单独池中时,您可以在一个单独的项目上设置保证或限定。这些限定称为资源控制。举例来讲,使用合理分配调度程序 (FSS) 设置最小 CPU 限定便是一种资源控制。使用 rcapd 守护进程设置一个物理内存容量也是一种资源控制。如果设置了最小 CPU 保证,则一个项目中循环的闲置 CPU 可以被其他项目中的应用程序使用。