Projects and Users
Projects are the workload containers in the FSS scheduler. Groups of users who
are assigned to a project are treated as single controllable blocks. Note that
you can create a project with its own number of shares for
an individual user.
Users can be members of multiple projects that have different numbers of shares
assigned. By moving processes from one project to another project, processes can be
assigned CPU resources in varying amounts.
For more information on the project(4) database and name services, see project Database.
CPU Shares Configuration
The configuration of CPU shares is managed by the name service as a
property of the project database.
When the first task (or process) that is associated with a project
is created through the setproject(3PROJECT) library function, the number of CPU shares defined as
resource control project.cpu-shares in the project database is passed to the kernel. A
project that does not have the project.cpu-shares resource control defined is assigned
In the following example, this entry in the /etc/project file sets the number
of shares for project x-files to 5:
If you alter the number of CPU shares allocated to a project
in the database when processes are already running, the number of shares for
that project will not be modified at that point. The project must be
restarted for the change to become effective.
If you want to temporarily change the number of shares assigned to
a project without altering the project's attributes in the project database, use the prctl
command. For example, to change the value of project x-files's project.cpu-shares resource control to
3 while processes associated with that project are running, type the following:
# prctl -r -n project.cpu-shares -v 3 -i project x-files
See the prctl(1) man page for more information.
Replaces the current value for the named resource control.
- -n name
Specifies the name of the resource control.
- -v val
Specifies the value for the resource control.
- -i idtype
Specifies the ID type of the next argument.
Specifies the object of the change. In this instance, project x-files is the object.
Project system with project ID 0 includes all system daemons that are
started by the boot-time initialization scripts. system can be viewed as a project with
an unlimited number of shares. This means that system is always scheduled
first, regardless of how many shares have been given to other projects. If
you do not want the system project to have unlimited shares, you can
specify a number of shares for this project in the project database.
As stated previously, processes that belong to projects with zero shares are always
given zero system priority. Projects with one or more shares are running with
priorities one and higher. Thus, projects with zero shares are only scheduled when
CPU resources are available that are not requested by a nonzero share project.
The maximum number of shares that can be assigned to one project