安装和管理 Solaris Container Manager 3.6

第 4 章 管理项目

本章介绍了创建、使用和管理项目的过程。

包括以下主题:


注 –

只有项目管理员才能管理(创建、激活、取消激活、修改、删除)项目。项目管理员是在设置 Solaris Container Manager 软件时指定的。


创建项目

在安装和设置软件后,除了可用的默认容器外,还可以创建自定义的项目。组合使用两种类型的容器可帮助您实现服务器的加强计划。

使用“新建项目”向导可以创建自定义项目。可以选择仅创建容器并将其保存到容器视图中。或者可以完成所有的向导步骤创建一个项目。这两种情况使用同一个向导。

如果选择仅创建容器,则其名称会保存到容器视图中。可以稍后再使用容器创建一个或多个项目。有关如何激活项目的更多信息,请参见激活或取消激活项目

如果选择创建项目,则作为创建过程的一部分还会生成一个容器。完成项目的创建后,该容器会保存到 容器视图的导航窗口中。可以使用相同的定义创建其他与多台主机关联的项目。所有这些项目的定义(包括名称和项目类型)对于每台主机都是相同的。可以使每台主机的项目资源保留不同,也可以使它们完全相同。这种灵活性使您可以根据不同的情况满足资源需求。有关更多信息,请参见有关容器属性

“新建项目”向导可引导您完成项目的创建过程。创建项目时,为了轻松地完成向导过程,应具有以下信息:

可以从 GUI 中的三个不同位置访问此向导,但均要使用“新建项目”按钮。根据您访问向导的 GUI 位置,可能不需要提供所有这些信息。此外,根据入口点,系统可能会为您提供某些信息。

Procedure启动新建项目向导

可以从 GUI 中的三个位置访问此新建项目向导。根据进入向导时所使用的访问点,您可能无需完成向导中的所有面板,原因是系统会自动提供某些信息。

有关“新建项目”向导的更多范例,请参见创建基于应用程序的项目

步骤
  1. 如果尚未打开 Container Manager GUI, 请按要启动Container Manager GUI中所述打开它。

  2. 在导航窗口中,确定希望创建的容器的关系。

    • 要将特定的主机与容器自动关联,请执行以下操作:

      1. 在主机视图的导航窗口中,选择主机名。

        如有必要,请单击主机组名展开列表。

      2. 选择位于右窗格中的“项目”选项卡。

        屏幕上将显示“项目”表。

      使用此方法创建容器时,需要选择主机。

      显示“新建项目”按钮的主机视图的屏幕捕获。周围的文本描述了背景。
    • 要自动将项目绑定到特定的资源池,请执行以下操作:

      1. 在主机视图的导航窗口中,选择资源池名称。

        如有必要,请单击主机名旁边的钥匙符号展开列表。屏幕上将显示为该主机指定的资源池。

      2. 选择位于右窗格中的“项目”选项卡。

        屏幕上将显示“项目”表。

      无需在容器的创建过程中指定资源池。

    显示“新建项目”按钮的主机视图(资源池)的屏幕捕获。周围的文本描述了背景。
  3. 单击主机项目表或主机资源池表中的“新建项目”按钮。


    注 –

    无论选择何种方法,均可以从右窗格显示的表中找到“新建项目”按钮。


    屏幕上将显示新建项目向导。“概述”面板是屏幕上显示的第一个面板。

    “新建项目”向导“概述”面板的屏幕捕获。周围的文本描述了背景。

创建基于用户或基于组的项目


注 –

如果正在运行 Solaris 8 发行版,则只能使用基于用户的容器类型。


如果希望容器管理通过 UNIX 用户名或 UNIX 组名标识的进程,则应该创建基于用户或基于组的容器。在创建过程中选择的项目类型将决定已完成的容器是基于用户的还是基于组的。

Procedure创建基于用户或基于组的项目

步骤
  1. 启动新建项目向导,如启动新建项目向导中所述。

    屏幕上将显示“概述”面板。

  2. 选择“用户”或“组”作为项目类型。

    项目类型为基于用户的容器会跟踪具有相同 UNIX 用户名的进程。

    项目类型为基于组的容器会跟踪具有相同 UNIX 组名的进程。


    注 –

    Solaris 8 操作系统仅支持基于用户的容器类型。


  3. 请提供满足以下要求的项目类型标识符:

    (在 Solaris 8 上)

    • 基于用户的项目 - 必须在第一个字段中提供一个有效的 UNIX 用户名。可以将能够加入项目的用户的 UNIX 用户名添加到第二个字段中。可以将能够加入项目的组的 UNIX 组名添加到第三个字段中。多个条目之间使用逗号分隔。

      请勿在第一个字段中提供已在其他基于用户的项目或在默认项目中使用的用户名。

    • 基于组的项目 - 必须在第一个字段中提供一个有效的 UNIX 组名。可以将能够加入项目的组的 UNIX 组名添加到第二个字段中。可以将能够加入项目的用户的 UNIX 用户名添加到第三个字段中。多个条目之间使用逗号分隔。

      请勿在第一个字段中提供已在其他基于组的项目或在默认项目中使用的组名。


    注 –

    在 Solaris 9 和 Solaris 10 上,无需输入有效的用户名和组名。但是,系统上必须存在其他用户名和组名。


    有关此项目类型的其他信息,请参见表 3–2

  4. 如果通过仅选择主机名(不选择池)访问“新建项目”向导,请指定一个支持该项目资源需求的资源池。

    项目中启动的新进程将绑定到相应的资源池上。激活项目后,项目所拥有的新进程会绑定到它的资源池中。

    • 要指定新的资源池,请执行以下操作:

      1. 选择“创建一个新资源池”。

      2. 提供资源池的名称。

        该名称必须是字母数字字符,不能包含空格。破折号 (-)、下划线 (_) 和圆点 (.) 字符是允许的。

      3. 指定 CPU 的数量。

        CPU 数量必须是不小于 1 的整数,并且不能超过主机上可用的 CPU 的数量。屏幕上将显示主机上的 CPU 总数和当前可用的 CPU 的数量。

    • 要指定现有的池,请执行以下操作:

      1. 选择“使用一个现有资源池”。

        屏幕上将显示可用资源池的列表。

      2. 在列表中选择资源池名称旁边的单选按钮。

        屏幕上将给出为每个资源池指定的 CPU 总数,以及每个池中仍然可用的未保留 CPU 的数量。容器将绑定到选定的资源池上。

  5. (仅 Solaris 10)选择一个现有的区域。

    在可用的区域中单击按钮可将项目与区域相关联。

  6. 为项目提供资源保留。

    屏幕上将显示主机上可用的最大 CPU 数量、未保留的 CPU 份额数和内存资源。

    CPU 保留量是必需的,而且必须以整数形式提供。CPU 保留量为零的容器只有在与同一主机关联的所有其他容器中都没有运行的进程时,才能使用 CPU 资源。

    内存容量是可选的,应该以 MB 为单位提供。

    共享内存值是指允许该项目中运行的进程使用的共享内存总量。共享内存也是可选的。共享内存的默认值是物理内存的四分之一。

  7. 提供容器的名称。

    该名称必须是唯一的,并且不能超过 32 个字符。该名称用于在导航窗口、状态表和资源使用情况报告中标识容器。如果输入重复的名称,则容器的创建将失败。

    在创建过程完成后无法更改容器名称。

  8. (可选)提供对容器的描述。

  9. 查看“摘要”面板中的信息。

    项目摘要屏幕
  10. 单击“完成”。

    所做的选择得到保存,项目现在处于活动状态。Solaris 内核开始强制应用容器的资源保留。

创建基于应用程序的项目


注 –

Solaris 8 操作系统仅支持基于用户的容器类型。


使用基于应用程序的项目可以管理在特定的软件应用程序中运行的进程。您可以创建基于应用程序的可自动移动进程的项目,或是基于应用程序的允许您手动移动进程的项目。

如果您可以提供确实是应用程序独有的匹配表达式,则可以将此表达式添加到项目中。您还必须提供进程在运行时将使用的 UNIX 用户 ID 或 UNIX 组 ID。有权稍后加入项目的其他用户或组也可以添加进来。要自动将进程移动至项目中,必须在屏幕上显示相应的向导面板时提供所有必需的项目标识符。然后,软件会自动为基于此定义的所有项目移动所有匹配的进程。

如果应用程序没有创建确实唯一的标识符,则应该手动移动进程或者在项目内启动应用程序。如果希望手动移动进程,请创建仅具有进程在运行时将使用的 UNIX 用户 ID 或 UNIX 组 ID 的项目。有权稍后加入项目的其他用户或组也可以添加进来。然后,使用 newtask -p 命令移动进程。有关更多信息,请参见移动或启动项目中的进程

Procedure确定应用程序的匹配表达式

使用此过程可确定正确的匹配表达式,用以标识与希望管理的应用程序对应的进程。在“新建容器”向导中必须提供此表达式,以便将进程自动移动到容器中。

步骤
  1. 在终端窗口中启动基于应用程序的容器将管理的应用程序。

  2. 要查看正在运行的所有进程的列表,请在终端窗口中键入:


    % ps -cafe
    
  3. 在 CMD 栏中,定位相应的可执行文件的名称。

    选择将唯一标识应用程序进程的表达式。


示例 4–1 确定 Mozilla 的匹配表达式

以下是搜索 Mozilla 时 ps - cafe 命令的输出示例:


% ps -cafe
     UID   PID  PPID  CLS PRI    STIME TTY      TIME CMD
    ...
username  8044  7435   IA  50 19:47:09 pts/11   0:00 /bin/ksh -p /usr/sfw/lib/mozilla/mozilla

在此示例中,唯一的可执行文件名称为 mozilla。同样,正确的匹配表达式为 mozilla



示例 4–2 确定 Tomcat 服务器的匹配表达式

如果知道应用程序的名称,则可以组合使用 grep 命令和 ps -cafe 来定位正确的匹配表达式。以下是搜索 Tomcat 服务器时 ps - cafe | grep tomcat 命令的输出示例:为了节省篇幅,此示例做了简化,省略了无关的信息。


% ps -cafe | grep tomcat
  nobody 27307  /usr/j2se/bin/java -classpath //usr/apache/tomcat/bin/bootstrap.jar:/usr/j2se/l
 

在此示例中,可执行文件的名称为 java。但正确的匹配表达式为 tomcat。在这种情况下,匹配表达式是参数,而不是可执行文件的名称,因为 java 不能唯一地标识 Tomcat 进程。



示例 4–3 检验 Tomcat 服务器的匹配表达式

以下示例显示了如何使用 pgrep 命令查找 PID。PID 可检验是否已标识了用于查找所需进程的唯一的匹配表达式:


% pgrep -f tomcat
27307

Tomcat 服务器的 PID 为 27307。此数字与示例 4–2 中的 PID 匹配。这种匹配可确认匹配表达式 tomcat 对应于 Tomcat 服务器进程。


Procedure创建基于应用程序的项目

步骤
  1. 启动新建项目向导,如启动新建项目向导中所述。

    屏幕上将显示“概述”面板。

  2. 选择“应用程序”作为容器的项目类型。

    基于应用程序的项目容器将跟踪与应用程序关联的进程。有关此项目类型的更多信息,请参见表 3–2

  3. 提供项目的名称。

    该名称必须是唯一的,并且不能超过 32 个字符。该名称用于在导航窗口、状态表和资源使用情况报告中标识项目。如果键入重复的名称,则项目的创建将失败。

    在创建过程完成后无法更改容器名称。

  4. 提供应用程序进程在运行时使用的 UNIX 用户名或 UNIX 组名。

    必须提供应用程序进程在运行时使用的 UNIX 用户名或 UNIX 组名。如果没有提供这些名称,则相应的进程不会移动至容器下,直到提供它们为止。多个条目之间使用逗号分隔。

  5. 确定是希望在激活容器时自动将应用程序进程移动至项目下,还是希望从命令行手动移动它们。

    • 要表示希望从命令行手动移动应用程序进程,请选择“不使用匹配表达式”复选框。

    • 要在激活项目时自动将应用程序进程移动至项目下,请在“匹配表达式”字段中提供一个表达式。

      可以在“匹配表达式”字段中使用通配符,用以标识与应用程序关联的进程。使用通配符的匹配表达式示例有 moz 和 cat,它们分别标识与 Mozilla 和 Tomcat 关联的进程。

      “新建项目”向导中的项目应用程序进程标识符

      要自动将应用程序进程移动至容器中,必须提供匹配表达式。此表达式是区分大小写的。要确定匹配表达式是否正确,请参见确定应用程序的匹配表达式

      如果此时不提供匹配表达式,则应用程序进程不会移动至该容器下,直到提供此表达式为止。

  6. 如果通过主机名(不选择资源池)访问“新建项目”向导,请指定一个支持项目的资源要求的资源池。

    项目中启动的新进程将绑定到相应的资源池上。激活项目后,容器中容纳的新进程会绑定到它的资源池中。

    • 要指定新的资源池,请执行以下操作:

      1. 选择“创建一个新资源池”。

      2. 提供资源池的名称。

        该名称必须是字母数字字符,不能包含空格。破折号 (-)、下划线 (_) 和圆点 (.) 字符是允许的。

      3. 指定 CPU 的数量。

        CPU 数量必须是不小于 1 的整数,并且不能超过主机上可用的 CPU 的数量。屏幕上将显示主机上的 CPU 总数和当前可用的 CPU 的数量。

    • 要指定现有的池,请执行以下操作:

      1. 选择“使用一个现有资源池”。

        屏幕上将显示可用资源池的列表。

      2. 在列表中选择资源池名称旁边的单选按钮。

        屏幕上将给出为每个资源池指定的 CPU 总数,以及每个池中仍然可用的未保留 CPU 的数量。项目将绑定到选定的资源池上。

  7. (仅 Solaris 10)选择一个现有的区域。

    单击一个可用区域中的按钮。

  8. 为项目提供资源保留。

    提供主机上可用的最大 CPU 数量、未保留的 CPU 份额和内存资源。

    CPU 保留量(CPU 份额)是必需的,而且必须以整数形式提供。CPU 保留量为零的项目只有在与同一主机关联的所有其他容器中都没有运行的进程时,才能使用 CPU 资源。

    内存容量是可选的,应该以 MB 为单位提供。

    共享内存值是指允许此项目内运行的进程使用的共享内存总量。共享内存也是可选的。共享内存的默认值是物理内存的四分之一。

  9. 提供容器的名称。

    该名称必须是唯一的,并且不能超过 32 个字符。该名称用于在导航窗口、状态表和资源使用情况报告中标识容器。如果输入重复的名称,则容器的创建将失败。在创建过程完成后无法更改容器名称。

  10. (可选)提供对容器的描述。

  11. 查看“摘要”面板中的信息。

    应用程序项目摘要屏幕
  12. 单击“完成”。

    所做的选择得到保存,容器现在处于活动状态。Solaris 内核开始强制应用容器的资源保留。

移动或启动项目中的进程

如果项目正在管理的应用程序不具有唯一的可执行文件名称,则应该手动将进程移动到项目中。此方法可确保您仅跟踪所需应用程序的进程。

Procedure将进程单独移动到基于应用程序的项目中

如果没有为基于应用程序的项目提供匹配表达式,并且希望将应用程序的进程单独移动到项目中,请使用此过程。

步骤
  1. 创建基于应用程序的项目以便管理应用程序。选择“不使用匹配表达式”复选框。

    有关详细步骤,请参见创建基于应用程序的项目一节。

  2. 键入以下命令,查看 /etc/project 文件以确定项目名称:


    % cat /etc/project
    

    您将在步骤 5 中需要此项目名称。

  3. 如有必要,请在终端窗口中启动应用程序。

  4. 确定与应用程序对应的进程。

    有关示例,请参见示例 4–1示例 4–2示例 4–3

  5. 移动相应的进程。

    1. 在 Container Manager GUI 中,单击导航窗口内的主机。

    2. 单击“项目”选项卡。

      屏幕上将显示“项目”表。

    3. 在“项目表”中,单击项目名称。请注意,项目名称带有下划线表示这是一个链接。

      屏幕上将显示“项目属性”选项卡。

    4. 单击“进程”选项卡。

      屏幕上将显示“进程”表。

    5. 选择要移动的进程。

    6. 单击“移动”按钮。

      屏幕上将显示“移动进程”对话框。

    7. 从项目(容器)列表中为进程选择新项目(容器)。

    8. 单击“确定”。

  6. 重复执行步骤 5,直到所有进程均已移动。


示例 4–4 使用 ps 检验进程是否已移动到项目中

可以组合使用 ps 命令和 grep 检验进程是否已移动到容器中。以下示例显示了单独移动的进程现在已位于容器 payroll 中:


% ps -ae -o pid,project,comm | grep payroll
17773    payroll ora_reco_AcctEZ
17763    payroll ora_pmon_AcctEZ
17767    payroll ora_lgwr_AcctEZ 


示例 4–5 使用 prstat 检验进程是否已移动到项目中

如果知道项目名称,则可以使用命令 prstat 检验进程是否已移动到容器中。在此示例中,项目名称为 payroll。


% prstat -J payroll
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
 17773 admin     216M  215M cpu2     1    0   0:05:08  29% ora_reco_AcctEZ/1
 17763 admin     834M  782M sleep    1    0   0:35:02   0% ora_pmon_AcctEZ/1
 17767 admin     364M  352M run      1    0   0:22:05  23% ora_lgwr_AcctEZ/1

Procedure启动项目中的应用程序

步骤
  1. 创建基于应用程序的项目以便管理应用程序。选择“不使用匹配表达式”复选框。

    有关详细步骤,请参见创建基于应用程序的项目

  2. 根据操作系统版本,从以下操作中进行选择:

    • 对于 Solaris 8 操作系统,键入:


      % srmuser user_name newtask -p project_name application_name
      

      其中,user_name 是 UNIX 用户名,project_name 的形式为 user.username。在 Solaris 8 操作系统上,由于仅支持基于用户的容器,因此 user_nameproject_name 是相同的。

    • 对于 Solaris 9 或 Solaris 10 操作系统,键入:


      % newtask -p project_name application_name
      

      其中,project_name 是与容器关联的项目,application_name 是启动应用程序的命令(包括任何命令参数)。

    将在容器中启动应用程序。


示例 4–6 在 Solaris 9 或 Solaris 10 操作系统上从容器内启动应用程序

以下是在名为 music 的容器内启动名为 tracks 的应用程序的示例:


% newtask -p music tracks -z 0 mozart.au

其中,-z 0 mozart.au 是应用程序 tracks 的命令行参数。



示例 4–7 检验应用程序与项目的关联

启动应用程序后,可以通过键入以下命令检验应用程序与哪个项目关联:


% ps -ae -o pid,project,comm

以下是此命令的输出示例:


  PID  PROJECT COMMAND
...
17771   default ora_smon_SunMC
16246   system rquotad
26760   group.staff /bin/csh
16266   music	 tracks
17777   default ora_d000_SunMC
17775   default ora_s000_SunMC
17769   default ora_ckpt_SunMC

在此示例中,名为 tracks 的应用程序具有 PID 16266,项目为 music,可执行文件为 tracks。这与示例 4–6 中启动的应用程序相同。


激活或取消激活项目

项目处于定义或非活动状态时,不强制应用项目的资源限制。要启用此强制应用,必须激活项目。相反,当您不希望强制应用这些限制时,必须取消激活项目。对于处于活动状态的项目,可以在不丢失已建立的资源限制的情况下取消激活它。有关更多信息,请参见项目状态

通过“将主机和容器关联”向导,可以使用现有的容器创建新的活动项目。通过一个按钮就可以激活非活动的项目或取消激活活动的项目。

Procedure激活项目

步骤
  1. 如果尚未打开 Container Manager GUI, 请按要启动Container Manager GUI中所述打开它。

  2. 在容器视图中,选择容器的名称。

    如果此容器位于某个组中,请从导航窗口中选择该组以便在右窗格中显示此容器。

  3. 在右窗格中选择“主机”选项卡。

    屏幕上将显示“与该容器定义相关联的主机”表。当前与选定的容器关联的所有主机均列在此表中。

  4. 单击“将主机与容器关联”按钮。

    屏幕上将显示“将主机与容器关联”向导。

    “关联到主机”向导屏幕
  5. 按照向导中的指导键入主机名或查找相应的主机。

Procedure激活非活动项目

步骤
  1. 如果尚未打开 Container Manager GUI, 请按要启动Container Manager GUI中所述打开它。

  2. 在主机视图中,选择容器关联的主机。

  3. 在右窗格中选择“项目”选项卡。

    屏幕上将显示一个表,其中列出了与该主机关联的所有项目。

  4. 要启用“激活”按钮,请选择要激活的项目对应的复选框。

  5. (可选)查看和修改项目的属性。

    1. 在表的“项目名称”列中单击项目的名称。

      屏幕上将显示“属性”选项卡。

    2. (可选)修改项目的资源保留,然后单击“保存”。

    有关更多信息,请参见修改容器和项目

  6. 单击“激活”按钮。

    项目即被激活,资源限制也将由内核强制应用。

Procedure取消激活活动项目

步骤
  1. 如果尚未打开 Container Manager GUI, 请按要启动Container Manager GUI中所述打开它。

  2. 在主机视图中,选择项目关联的主机。

  3. 在右窗格中选择“项目”选项卡。

    屏幕上将显示一个表,其中列出了与该主机关联的所有项目。

  4. 要启用“取消激活”按钮,请选择要取消激活的项目对应的复选框。

  5. (可选)查看和修改项目的属性。

    1. 在表的“项目名称”列中单击项目的名称。

      屏幕上将显示“属性”选项卡。

    2. (可选)修改项目的资源保留,然后单击“保存”。

    有关更多信息,请参见修改容器和项目

  6. 单击“取消激活”按钮。

    项目即被取消激活,资源限制也不会由内核强制应用。

查看项目进程

可以从主机视图或容器视图内的表中获取有关在活动项目中正在运行的进程的信息。在这两个视图中提供了相同的“进程”表和同样的信息。

活动项目屏幕的“进程”表

在该表中,每行列出一个进程,并且提供了以下信息:

PID

进程 ID。

用户名

进程的拥有者(UNIX 用户名或登录名)。

大小

进程的虚拟内存总量(以 MB 表示)。

RSS

进程的驻留集大小(以 MB 表示)。

状态

进程的状态。有以下的值:

  • cpuN – 进程正在 CPU N上运行,其中,N 是一个整数。

  • sleep – 进程正处于休眠或等待状态。

  • run – 进程正在运行。

  • zombie – 进程已终止。

  • stop – 进程已停止。

PRI

进程的优先级。此数字越大,表明进程优先级越高。

NICE

优先级计算中使用的 Nice 值。

时间

进程的累计执行时间。

CPU

进程最近所使用的时间百分比。

进程/NLWP

进程的名称,这是所执行的文件的名称。此进程中轻量进程 (Lightweight Processes, LWPS) 的数目。

Procedure从主机视图查看在项目中运行的进程

如果知道项目关联的主机的名称,请使用此过程。

步骤
  1. 如果尚未打开 Container Manager GUI, 请按要启动Container Manager GUI中所述打开它。

  2. 通过单击导航窗口中左侧的选项卡选择主机视图。

  3. 在导航窗口中,选择项目关联的主机。

  4. 在右窗格中,选择“项目”选项卡。

    屏幕上将显示“项目”表,其中列出了与该主机关联的所有项目。该列表中包含活动的和非活动的项目。必须选择活动的项目才能查看有关其进程的信息。

  5. 通过单击项目名称选择项目。

    屏幕上将显示选定主机上项目实例的属性页面。

  6. 选择“进程”选项卡。

    在项目内运行的进程会显示在“进程”表中。在该表上方,会显示项目的名称及其关联的主机。

    如果没有列出任何进程,则可能已选择了非活动的容器。

Procedure从容器视图查看在项目中运行的进程

如果知道项目的名称,并且希望从项目关联的主机的列表中进行选择,请使用此过程。

步骤
  1. 如果尚未打开 Container Manager GUI, 请按要启动Container Manager GUI中所述打开它。

  2. 通过单击导航窗口中右侧的选项卡选择容器视图。

  3. 在导航窗口中,选择所需的容器。

    如有必要,请单击三角形展开标记展开容器。出现项目名称后,单击所需项目的名称。

    在右窗格中将显示一个表,其中列出了该容器关联的所有主机。

  4. 在此表中,单击项目名称。

    屏幕上将显示选定主机上容器实例的属性页面。

  5. 选择“进程”选项卡。

    在表标题中,会显示项目的名称及其关联的主机。正在项目内运行的进程会显示在“进程”表中。

    如果表中没有列出任何进程,则可能已选择了非活动的项目。

修改容器和项目

有两个属性表可用于修改容器或者活动或非活动的项目。下表显示了这两个属性表之间的差异。

表 4–1 属性表详细信息

属性表 

用法 

选项卡 

容器  

对描述、项目类型、项目标识符(用户、组)、匹配表达式所做的更改 

选择容器后容器视图中的“属性”选项卡 

项目实例(活动或非活动的项目) 

对资源池关联、CPU 保留、内存容量所做的更改 

主机视图或容器视图中的“属性”选项卡 

每个项目实例均具有一个关联的容器。对容器所做的任何更改均会应用到使用该定义的所有项目实例中。例如,如果更改某个容器中的项目类型,则使用相同容器的所有项目实例均会更改项目类型。因此,可以使用这两个属性表进行所有所需的修改。

每个项目实例还具有另一个属性表,该表仅用于更改项目实例自己的资源池关联或资源保留。使用此属性表时,一次能够更改一个项目。例如,可以增加当前最小 CPU 保留量或当前内存容量。保存新值后,更改即会生效。对非活动项目进行的资源限制修改只有在您重新激活该项目后才会生效。

以下示例显示了 sales01 项目实例完整的属性表。

图 4–1 范例:用于更改资源保留和资源池的属性表

项目属性表屏幕

如果需要对多台主机上的多个活动项目进行资源更改,请使用资源更改作业功能。有关更多信息,请参见使用资源更改作业修改项目

在容器视图中有一个单独的属性表,您可以从中修改容器。一次能够对一个容器进行更改。不能使用资源更改作业功能对多个容器进行更改。

以下示例显示了对 sales01 项目实例进行更改后的完整属性表。

图 4–2 范例:用于修改容器的属性表

用于修改容器的属性表屏幕

不能修改默认项目的属性。因此,如果选择了默认项目,则两个属性表均不可用。


注 –

只有容器或非活动项目可以修改属性。在修改活动项目的属性前,必须首先从该项目关联的每台主机上取消激活该项目。保存更改后,可以重新激活该项目。


Procedure使用属性表修改容器

步骤
  1. 如果尚未打开 Container Manager GUI, 请按要启动Container Manager GUI中所述打开它。

  2. 选择容器视图。

  3. 选择容器。

    • 如果容器当前未用于任何活动项目,请从导航窗口中选择“容器组”。此方法将在右窗格中显示“容器和组”表。从表中选择项目。

    • 如果容器正在用于某些活动项目,请从导航窗口中选择该容器。如有必要,请单击不同的容器组展开各个容器的列表。此方法将显示“与此容器定义相关联的主机”表,您可以从中取消激活项目实例。


      注 –

      在更改属性前,必须取消激活使用该容器的所有项目实例。如果有任何实例的状态显示为“活动”,请选择所有主机,然后使用“与此容器相关联的主机”表中的“取消激活”按钮,之后再继续。


  4. 从右窗格中选择“属性”选项卡。

    屏幕上将显示选定容器的属性表。可以在文本字段中进行以下更改:

    • 描述 – 提供对容器的描述。

    • 项目类型 – 提供用户、组或应用程序。

    • UNIX 用户名 – 更改 UNIX 用户名的现有条目。

    • 其他用户 – 更改现有条目或提供其他有效的 UNIX 用户名。多个条目之间使用逗号分隔。

    • 其他组 – 更改现有条目或提供其他有效的 UNIX 组名。多个条目之间使用逗号分隔。


    注 –

    如果“保存”按钮不可用,并且文本字段为灰色,则表明该容器正在被一个或多个容器实例所使用。检验“与此容器定义相关联的主机”表中列出的所有主机是否均处于“非活动”状态。如果有任何主机的状态显示为“活动”,则必须将其取消激活。


  5. 单击“保存”以保存更改。

    屏幕上将仍然显示属性表。

Procedure使用属性表修改项目

使用此过程仅能对一个项目的资源池或资源保留进行更改。如果希望对多个项目进行相同的更改,请参见使用资源更改作业修改项目

步骤
  1. 如果尚未打开 Container Manager GUI, 请按要启动Container Manager GUI中所述打开它。

  2. 在选择所需的项目实例时,请使用以下方法之一:

    • 如果知道项目关联的主机的名称,请从主机视图的导航窗口中选择主机名。然后,选择右窗格中的“项目”选项卡,从而显示一个表,其中列出了与该主机关联的所有项目。

    • 如果知道项目的名称,请从容器视图的导航窗口中选择其名称。在右窗格中将显示“与此容器定义相关联的主机”表。


    注 –

    在更改属性前,必须取消激活所有的项目。如果有任何项目的状态显示为“活动”,请首先使用该表中的“取消激活”按钮,然后再继续。这两个视图中的表都有此按钮。


  3. 根据您在上一个步骤中选择的方法,从表中选择项目或主机的名称。

    屏幕上将显示项目实例的属性表。

  4. 进行所需的更改。


    注 –

    (在 Solaris 10 上)无法更改项目的资源池。


    • 资源池定义。要更改项目关联的资源池,请从下拉式菜单中进行选择。

    • CPU 保留(CPU 份额)。在文本框中提供新的整数值。

    • 内存容量 (MB)。在文本框中提供新值。

    • 共享内存 (MB)。在文本框中提供新值。

  5. 单击“保存”。

    请求对资源保留所做的更改即会得到保存。

  6. (可选)要重新激活项目,请返回到您在步骤 3 中使用的表,然后单击“激活”。

使用资源更改作业修改项目

使用资源更改作业功能可以对分布在多台主机上的多个项目进行资源限制更改。所有这些项目必须使用相同的容器。可以立即运行资源更改作业使更改同时得以实现,也可以进行调度使更改稍后发生。


注 –

在 Solaris 10 上,只有当容器部署在全局区域上时,资源更改作业功能才会更改容器的资源分配。



注 –

对 CPU 保留(CPU 份额)所做的更改会立即生效。对内存容量所做的更改需要写入交换空间中。对内存容量任何大的更改都将在内存容量进行调整时影响到系统的性能。


“资源更改作业”表中提供了以下信息:

资源更改作业名称

在作业的创建过程中提供的作业名称。

主机

容器关联的主机的名称。

调度

调度作业运行的时间间隔。可用的选项包括“一次”、“每小时”、“每天”、“每周”、“每月”。

状态

作业的状态。可用的值包括“已排队”、“成功”、“失败”。

以下示例使用名为 "Webserver" 和 "Rollup" 的项目显示如何使用资源更改作业功能来管理企业范围内的系统资源。在此示例中,联机存储提供了来自其 Web 站点的订单处理。创建了 Webserver 项目,用于管理该 Web 服务器在北美地区使用的 CPU 和内存资源。创建了 Rollup 项目,用于管理数据库所需的资源。在白天和傍晚时分,由于人们使用 Web 站点下订单,因此对 Web 服务器资源的需求会很大。但是在晚上,午夜以后对 Web 服务器的需求一般会急剧下降。整个晚上,数据库都被调度用于运行有关白天销售情况的报告。

要在一个具有 8 个 CPU 和 6000 MB 物理内存的系统上管理这两个容器所需的资源,总共可以创建四个资源更改作业(如下表所示)。

表 4–2 资源更改作业调度范例

容器名称 

资源更改作业名称 

开始时间 

时间间隔 

资源更改 

Webserver 

webserver-day 

早上 6:00 

每天 

CPU 份额:6 

内存:2500 MB 

Rollup 

rollup-day 

早上 6:00 

每天 

CPU 份额:1 

内存:2000 MB 

Webserver 

webserver-night 

午夜 

每天 

CPU 份额:1 

内存:2000 MB 

Rollup 

webserver-night 

午夜 

每天 

CPU 份额:6 

内存:2500 MB 

每天早上 6:00 都会运行两个资源更改作业以更改 Webserver 和 Rollup 项目的资源。在白天,由于 Webserver 的需求很大,因此会将大部分 CPU 和物理内存资源分配给 Webserver 项目。然后,每天的午夜运行第二组资源更改作业,会根据需求的变化对系统的资源重新进行分配。由于需求不高,在 Web 服务器所需资源较少时,数据库会要求资源来计算每日的销售情况。

此功能与 Sun Management Center 中的作业管理功能类似,但使用 Container Manager GUI 来管理所有 Container Manager 作业。有关 Sun Management Center 作业功能的更多信息,请参见《Sun Management Center 3.6 用户指南》中的“作业管理概念”

Procedure使用资源更改作业修改项目

步骤
  1. 如果尚未打开 Container Manager GUI, 请按要启动Container Manager GUI中所述打开它。

  2. 选择容器视图。

  3. 在导航窗口中,选择项目名称。

    该项目必须与某个主机关联,操作才能继续。

  4. 在右窗格中选择“作业”选项卡。

    屏幕上将显示“资源更改作业”表。

    图 4–3 范例:“资源更改作业”表

    资源更改作业屏幕

  5. 单击表中的“新建资源更改作业”按钮。

    屏幕上将显示“资源更改作业”向导。屏幕上将显示“概述”面板。

  6. 提供资源更改作业的名称。可以选择是否提供描述。

    该名称的长度不能超过 32 个字符。空格、破折号 (-)、下划线 (_) 和圆点 (.) 都是允许的。空格会转换为下划线 (_)。

    屏幕上将显示“选择主机”面板。选定容器关联的所有主机的名称均会显示在“可用”列表中。通过从此窗口中选择一个或多个主机,可以更改它们的资源限制。

  7. 从“可用”列表中选择每台主机,然后单击“添加”将每台主机移动到“已选择”列表中。或者,单击“全部添加”移动所有主机。

    这些主机名会移动到“已选择”字段中。

  8. 提供新的最小 CPU 保留(CPU 份额)。内存容量是可选的。

    新的资源限制会应用到上一个步骤中选择的所有主机上。

  9. 提供资源更改作业的起始日期、起始时间和时间间隔。

    对资源限制进行的更改会在要求的时间生效。

  10. 在“摘要”面板中查看您所做的选择。要进行更改,请使用“上一步”按钮。完成所有更改后,单击“完成”。

    向导即会消失。作业会添加到“作业”表中。直到调度作业运行的日期和时间,其状态才会显示为“已排队”。对资源限制进行的更改会在要求的时间生效。

Procedure编辑暂挂的资源更改作业

使用此过程可对“作业”表中状态仍显示为“已排队”的暂挂作业进行更改。

步骤
  1. 如果尚未打开 Container Manager GUI, 请按要启动Container Manager GUI中所述打开它。

  2. 在导航窗口中选择容器视图。

  3. 在右窗格中选择“作业”选项卡。

  4. 通过选择名称旁边的复选框,从“资源更改作业”表中选择要更改的作业。

    框中会显示复选标记。

  5. 要启动“更新资源更改作业”向导,请单击“更新资源更改作业”按钮。

    有关在面板之间进行移动的步骤的详细描述,请参见使用资源更改作业修改项目

  6. 完成所有更改后,单击“完成”。

    向导即会消失。对作业所做的编辑已得到保存。

Procedure查看资源更改作业日志

使用此过程可查看已经完成的更改作业的日志。如果作业中包含对多台主机的更改,则日志中会针对每台主机列出作业的状态。

步骤
  1. 如果尚未打开 Container Manager GUI, 请按要启动Container Manager GUI中所述打开它。

  2. 在导航窗口中选择容器视图。

  3. 在右窗格中选择“作业”选项卡。

  4. 从“资源更改作业”表中,通过选择名称旁边的复选框可以选择希望查看其日志的已完成作业。

    框中会显示复选标记。

  5. 单击“查看日志”按钮。

    屏幕上将显示该资源更改作业的日志文件。

删除项目

可以在不再需要项目及其容器时将它们删除。删除项目及其容器前,必须首先从该项目关联的所有主机中删除该项目。删除操作会从数据库中删除容器,将不再存储以前为该项目收集的数据。因此,对于已删除的项目,您无法获取其任何历史数据,因为该项目的所有数据均已从数据库中删除。被删除不能视为项目的一种状态,原因是记录和所有的历史数据均已删除。

不能在 Solaris 8 操作系统上删除项目,除非该项目中正在运行的所有进程均已停止。

删除项目时,根据正在运行的 Solaris 版本,可能会发生以下情况:

Solaris 8 操作系统

lnode 被删除,然后是项目。

Solaris 9 和 Solaris 10 操作系统

正在该项目中运行的进程会移动到默认项目中,并且会从 /etc/project 数据库中删除相应的条目。

Procedure删除容器

步骤
  1. 如果尚未打开 Container Manager GUI, 请按要启动Container Manager GUI中所述打开它。

  2. 检验容器是否没有非活动或活动的项目存在。

  3. 在导航窗口中选择容器视图。

  4. 选择要删除的容器。

  5. 单击“删除”。

    该容器会从容器视图中以及数据库中删除。