跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理 Oracle Solaris 11 Information Library (简体中文) |
示例 1:每个项目中有两个计算密集型 (CPU-bound) 进程
19. 安装、引导、关闭、停止、卸载和克隆非全局区域(任务)
23. 迁移 Oracle Solaris 系统和迁移非全局区域(任务)
24. 关于安装了区域的 Oracle Solaris 11 系统上的自动安装和软件包
25. Oracle Solaris Zones 管理(概述)
26. 管理 Oracle Solaris Zones(任务)
28. 各种 Oracle Solaris Zones 问题的故障排除
29. Oracle Solaris 10 Zones 介绍
30. 评估 Oracle Solaris 10 系统和创建归档文件
31. (可选)将 Oracle Solaris 10 native 非全局区域迁移到 Oracle Solaris 10 Zones
项目是指 FSS 调度程序中的工作负荷容器。为项目指定的用户组被视为单个可控制块。请注意,您可以为单个用户创建具有自身份额数的项目。
用户可以是多个指定了不同份额数的项目的成员。通过将进程从一个项目移动到另一个项目,可以为进程指定不同的 CPU 资源量。
有关 project(4) 数据库和名称服务的更多信息,请参见project 数据库。
CPU 份额配置作为 project 数据库的一个属性由名称服务来管理。
当通过 setproject(3PROJECT) 库函数创建与项目关联的第一个任务(或进程)时,会将在 project 数据库中定义为资源控制 project.cpu-shares 的 CPU 份额数传递给内核。尚未定义 project.cpu-shares 资源控制的项目将被指定一个份额。
在以下示例中,/etc/project 文件中的这一条目将项目 x-files 的份额数设置为 5:
x-files:100::::project.cpu-shares=(privileged,5,none)
如果在进程运行时改变了分配给数据库中某个项目的 CPU 份额数,则此时将不会修改此项目的份额数。为使更改生效,必须重新启动项目。
如果您要临时更改为项目指定的份额数而不在 project 数据库中改变此项目的属性,请使用 prctl 命令。例如,要在与项目 x-files 关联的进程运行时将此项目的 project.cpu-shares 资源控制值更改为 3,请键入以下命令:
# prctl -r -n project.cpu-shares -v 3 -i project x-files
有关更多信息,请参见 prctl(1) 手册页。
替换命名资源控制的当前值。
指定资源控制的名称。
指定资源控制的值。
指定下一个参数的 ID 类型。
指定更改的对象。在此实例中,对象为项目 x-files。
项目 ID 为 0 的项目 system 中包括所有由引导时初始化脚本启动的系统守护进程。可以将 system 视为具有无限多个份额的项目。这意味着,无论为其他项目提供多少份额,始终先调度 system。如果您不希望 system 项目具有无限的份额,则可以在 project 数据库中为此项目指定一个份额数。
如前所述,属于零份额项目的进程的系统优先级始终为 0。具有一个或多个份额的项目以 1 或更高的优先级运行。这样,仅当 CPU 资源可用(即非零份额项目没有请求 CPU 资源)时,才会调度零份额项目。
可以为一个项目指定的最大份额数为 65535。