Sun Microsystems 10 User Manual

Page of 121
Version 3.1-en
  Solaris 10 Container Guide - 3.1   4. Best Practices 
Effective: 30/11/2009
4.6.2.3. Fair share scheduler (FSS)
[ug] When multiple zones are running in one resource pool, then the distribution of CPU time among 
these zones is configurable. This configuration is active, when   the workload of the processor set 
approaches 100% (full load). The process priorities will then be modified by the FSS to achieve the 
configured CPU share. However, so long as the utilization of the CPU workload stays below 100%, 
the FSS does not intervene.
For configuration, the fair share scheduler must be activated in the resource pool.
The value of zone.cpu-shares must be set in the zone by zonecfg: add rctl.
From Solaris 10 8/07,  the number  of shares can be adjusted more  easily with  zonecfg: 
set cpu-shares=<number>
.
During full load (100% CPU workload in the resource pool), all the share values of the active 
zones are added up and the priorities of processes in these zones are modified such that the 
share in CPU power  corresponds to the ratio zone.cpu-shares/<sum-of-shares>.
The fair share scheduler can also be used in-between projects and mixed between zones and 
projects in a resource pool.
Comments:
The project cpu-caps  also allows to firmly assign the processors of a resource pool under 
partial load
Since the fair share scheduler can change the runtime behavior of the operating system, it is 
recommended to always, if possible, set up a separate resource pool with processor set where 
the FSS is to be used.
4.6.2.4. Fair share scheduler in a zone
[ug] If two or more applications within a zone are to receive differing amounts of CPU capacity, the 
FSS can also be used in the zone. It is not possible to configure Processor sets  within a zone since 
the zones' access to processors is restricted.
The administrator of a zone can configure the resource pools
(pooladm, poolcfg, poolstat).
Projects can be configured in the zone
(projects, projadd, projmod, projdel, ...)
The fair share scheduler must be activated in the resource pool of the global zone.
4.6.2.5. Dynamic resource pools
[ug] From Solaris 10 8/07 on, the creation of processor sets has been simplified for the following 
standard case: Resource pool with one processor set for one zone. Configuration takes place in the 
zonecfg command with add dedicated-cpu.
During the start of the zone, the system generates a temporary resource pool with processor set 
that corresponds to the configuration, and binds the zone to this resource pool.
The parameters can be changed dynamically just like for general resource pools.
When the zone is stopped, the resource pool is deleted and the CPUs are released again.
Since this setting occurs in the zone configuration, it is taken along automatically when a zone 
gets   moved   to   a   different   system.   For   general   resource   pools,   this   configuration   must   be 
transferred manually.
Dynamic resource pools are especially suitable on systems with many CPUs (large computers, 
CMT systems).
(Cookbook: 
4.6.2.6. Lightweight processes (LWP)
[ug] The limiting of lightweight processes is important for zones. Without such a limit, a denial-of-
service attack on the system from one zone can occur. A lightweight process is required to allow a 
thread  to  run.   If   a  process  runs  amok  within  a  zone  (e.g.   a  self-starting   script   that   continues  to 
generate new processes over and over), then the maximum number of LWP's could be reached on 
the system and/or the system could run slowly.
In the zone configuration, the value of zone.max-lwps which limits the number of 
lightweight processes can be set with zonecfg: add rctl.
From Solaris 10 8/07, the number of LWP's can be set more simply by 
zonecfg: set max-lwps=<number>.
59