安装和管理 Solaris Container Manager 1.1

创建基于应用程序的项目


注 –

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 内核开始实施该容器的资源保留。