系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones

设置池属性并绑定到池

可以设置 project.pool 属性,以便将资源池与项目关联。

可通过两种方法将正在运行的进程绑定到池:

Procedure如何将进程绑定到池

以下过程使用带有 -p 选项的 poolbind 将进程(在此例中为当前 shell)手动绑定到名为 ohare 的池。

  1. 成为超级用户,或者承担包括进程管理配置文件的角色。

    系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 将进程手动绑定到池:


    # poolbind -p ohare $$
    
  3. 使用带有 -q 选项的 poolbind 验证进程的池绑定。


    $ poolbind -q $$
    155509 ohare

    系统将显示进程 ID 和池绑定。

Procedure如何将任务或项目绑定到池

要将任务或项目绑定到池,请使用带有 -i 选项的 poolbind 命令。以下示例将 airmiles 项目中的所有进程绑定到 laguardia 池。

  1. 成为超级用户,或者承担包括进程管理配置文件的角色。

    系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. airmiles 项目中的所有进程绑定到 laguardia 池。


    # poolbind -i project -p laguardia airmiles
    

Procedure如何设置项目的 project.pool 属性

您可以设置 project.pool 属性,以将项目的进程绑定到资源池。

  1. 成为超级用户,或者承担包括进程管理配置文件的角色。

    系统管理员角色包括进程管理配置文件。有关角色的更多信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. project.pool 属性添加到 project 数据库中的每个条目。


    # projmod -a -K project.pool=poolname project
    

Procedure如何使用 project 属性将进程绑定到其他池

假设配置中具有两个名为 studiobackstage 的池。/etc/project 文件具有以下内容:


user.paul:1024::::project.pool=studio
user.george:1024::::project.pool=studio
user.ringo:1024::::project.pool=backstage
passes:1027::paul::project.pool=backstage

使用此配置,可以在缺省情况下将用户 paul 启动的进程绑定到 studio 池。

用户 paul 可以为其启动的进程修改池绑定。paul 也可以使用 newtask,通过在 passes 项目中启动来将工作绑定到 backstage 池。

  1. passes 项目中启动进程。


    $ newtask -l -p passes
    
  2. 使用带有 -q 选项的 poolbind 命令验证进程的池绑定。还可使用双美元符号 ($$) 将父级 shell 的进程号传递给该命令。


    $ poolbind -q $$
    6384  pool backstage

    系统将显示进程 ID 和池绑定。