在 Oracle® Solaris 11.2 中进行资源管理

退出打印视图

更新时间: 2014 年 7 月
 
 

如何为项目中的每个任务设置最大 LWP 数

此过程将名为 x-files 的项目添加到 /etc/project 文件,并为在此项目中创建的任务设置最大 LWP 数。

  1. 成为 root 用户或承担等效角色。
  2. 使用带有 K 选项的 –projadd 命令创建名为 x-files 的项目。将在此项目中创建的每个任务的最大 LWP 数设置为 3
    # projadd -K 'task.max-lwps=(privileged,3,deny)' x-files
  3. 使用以下方法之一查看 /etc/project 文件中的条目:
    • 键入:

      # projects -l
      system
              projid : 0
              comment: ""
              users  : (none)
              groups : (none)
              attribs: 
      .
      .
      .
      x-files
              projid : 100
              comment: ""
              users  : (none)
              groups : (none)
              attribs: task.max-lwps=(privileged,3,deny)
    • 键入:

      # cat /etc/project
      system:0:System:::
      .
      .
      .
      x-files:100::::task.max-lwps=(privileged,3,deny)
示例 7-1  会话样例

执行完此过程中的步骤后,如果 root 用户在项目 x-files 中创建新任务(通过 newtask 加入项目),用户将无法在运行此任务时创建三个以上的 LWP。以下带有注释的会话样例显示了这一原则。

# newtask -p x-files csh

# prctl -n task.max-lwps $$
process: 111107: csh
NAME    PRIVILEGE    VALUE    FLAG   ACTION            RECIPIENT
task.max-lwps
        usage            3
        privileged       3       -   deny                      -
        system       2.15G     max   deny                      -
# id -p
uid=0(root) gid=1(other) projid=100(x-files)

# ps -o project,taskid -p $$
 PROJECT TASKID
 x-files    73

# csh        /* creates second LWP */

# csh        /* creates third LWP */

# csh        /* cannot create more LWPs */
Vfork failed
#