安装和管理 Solaris Container Manager 1.1

第 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 OS 仅支持基于用户的容器类型。


  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 OS 仅支持基于用户的容器类型。


请使用基于应用程序的项目来管理运行在特定软件应用程序中的进程。您可以创建一个基于应用程序的项目,通过它自动移动进程,或者使用它来手动移动进程。

如果你可以为应用程序提供一个绝对唯一的匹配表达式,则可将这一表达方式添加到项目中。您还必须提供进程将在其下运行的 UNIX 用户 ID 或 UNIX 组 ID。也可以可在晚些时候,将拥有权限加入该项目的附加用户或组添加到项目中。要使进程自动移入项目中,您必须在相应的向导面板出现时,提供全部所需的项目标识符。然后该软件会将所有匹配的进程自动移动到基于这一定义的所有项目中。

如果应用程序没有创建绝对唯一的标识符,您将需要手动移动进程或在项目中启动应用程序。要手动移动进程,请使用 UNIX 用户 ID 或 UNIX 组 ID 来创建项目,进程将在其中运行。也可以可在晚些时候,将拥有权限加入该项目的附加用户或组添加到项目中。然后使用 newtask -p 命令移动这些进程。有关详细信息,请参阅移动或启动项目中的进程

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

请按照以下步骤来确定适当的匹配表达式,以便标识与您要管理的应用程序相对应的进程。在新建容器向导中,需要使用这一表达式自动将进程移动到容器中。

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

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


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

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


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

以下为使用 ps - cafe 命令搜索 Mozilla 时的输出实例:


% ps -cafe
     UID   PID  PPID  CLS PRI    STIME TTY      TIME CMD
    ...
用户名  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 命令来查找适当的匹配表达式。 以下是使用 ps - cafe | grep tomcat 命令搜索 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 Server 的匹配表达式

以下实例显示了如何使用 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. 根据不同的 OS 版本选择相应的方法:

    • 对于 Solaris 8 OS,请键入:


      % srmuser 用户名 newtask -p 项目名 应用程序名
      

      其中,用户名是 UNIX 用户名,项目名的格式为 user.用户名。由于 Solaris 8 OS 仅支持基于用户的容器,因此用户名项目名相同。

    • 对于 Solaris 9 或 Solaris 10 OS,请键入:


      % newtask -p 项目名 应用程序名
      

      其中,项目名是与容器相关联的项目,应用程序名是启动该应用程序的命令,包括所有命令参数。

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


示例 4–6 在 Solaris 9 或 Solaris 10 OS 中启动容器中的应用程序

以下是启动名为 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 是一个整数。

  • 休眠 – 进程正在休眠或等待。

  • 运行 – 进程正在运行。

  • 僵持 – 进程已终止。

  • 停止 – 进程已停止。

PRI

进程的优先级。该数字越大,进程的优先级越高。

NICE

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

时间

进程的累计执行时间。

CPU

进程近期所用 CPU 时间的百分比。

进程/NLWP

进程的名称,即可执行文件的名称。进程中轻量进程 (LWP) 的数目。

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" 的项目说明如何使用资源更改作业功能管理分布在整个企业的系统资源。在本实例中,一个网上商店通过其网站提供订单处理。创建 Webserver 项目以管理分布在北美的 Web 服务器的 CPU 和内存资源。创建 Rollup 项目以管理数据库所需的资源。在白天和傍晚,Web 服务器资源需求很高,因为那时人们在使用 Web 站点处理订单。但是在夜里,特别在午夜以后,Web 服务器需求大幅下降。在整个夜间,数据库被安排运行白天销售情况的报告。

要管理位于具有 8 个 CPU,6000 MB 物理内存的系统上的 2 个容器的资源需求,您可以创建如下表所示的 4 个资源更改作业。

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

容器名称 

资源更改作业名称 

开始时间 

时间间隔 

资源更改 

Webserver 

Webserver-day 

6:00 a.m. 

每天 

CPU: 6 

内存:2500 MB 

Rollup 

rollup-day 

6:00 a.m. 

每天 

CPU: 1 

内存:2000 MB 

Webserver 

Webserver-night 

午夜 

每天 

CPU: 1 

内存:2000 MB 

Rollup 

Webserver-night 

午夜 

每天 

CPU: 6 

内存:2500 MB 

每天早上 6 点钟,将运行两个资源更改作业以更改 Webserver 和 Rollup 项目的资源。在白天,由于 Webserver 具有很高的资源需求,所以为 Webserver 项目分配了绝大部分的 CPU 和物理内存资源。而在每天夜间,将运行另外一组资源更改作业,它们对系统资源进行重新分配以适应需求变化。数据库需要资源以处理日间的销售数据。由于 Web 服务器的需求较低,因此需要较少资源。

这一功能与 Sun Management Center 中的作业管理功能相似,但它使用 Container Manager GUI 来管理所有 Container Manager 作业。有关 Sun Management Center 作业功能的详细信息,请参阅《Sun Management Center 3.5 用户指南》中的“作业管理概念”

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 OS 中,如果未停止项目中所有正在运行的进程,您将无法删除此项目。

在删除项目时,对于不同的 Solaris 版本,将出现下列不同的情况:

Solaris 8 OS

删除项目之后,lnode 也将被删除。

Solaris 9 OS 和 Solaris 10 OS

项目中正在运行的进程将转移到默认项目,该项目的条目也将被从 /etc/project 数据库中删除。

Procedure删除容器

步骤
  1. 如果您尚未打开 Container Manager GUI,请首先打开它,具体步骤参见启动 Container Manager GUI

  2. 检验容器中是否已不存在非活动或活动的项目。

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

  4. 选择要删除的容器。

  5. 单击“删除”。

    该容器将被从容器视图和数据库中同时删除。