Could anyone help me finding the real cause of the error and how to
resolve it ? I wonder if there's any workaround and if there will be
any issue if ignore the WARNING message. Thanks, Humphrey
# zoneadm -z zone1 reboot
zoneadm: zone 'zone1': WARNING: The zone.cpu-shares rctl is set but
zoneadm: zone 'zone1': FSS is not the default scheduling class for
zoneadm: zone 'zone1': this zone. FSS will be used for processes
zoneadm: zone 'zone1': in the zone but to get the full benefit of FSS,
zoneadm: zone 'zone1': it should be the default scheduling class.
zoneadm: zone 'zone1': See dispadmin(1M) for more details.
# zonecfg -z zone1 info
zonename: zone1
zonepath: /export/zone1
brand: native
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
[cpu-shares: 90]
inherit-pkg-dir:
dir: /lib
inherit-pkg-dir:
dir: /platform
inherit-pkg-dir:
dir: /sbin
inherit-pkg-dir:
dir: /usr
fs:
dir: /dir1
special: /dev/dsk/c0t0d0s4
raw: /dev/rdsk/c0t0d0s4
type: ufs
options:
net:
address: 164.30.110.24
physical: hme0
defrouter not specified
attr:
name: comment
type: string
value: "zone one"
rctl:
name: zone.cpu-shares
value: (priv=privileged,limit=90,action=none)
The default scheduler for Solaris uses time sharing to divide CPU time
between running tasks. The fair share scheduler (FSS) uses "shares"
to give weighted prioritization to running processes based on the
assigned CPU shares. You've assigned cpu-shares to the zone, but you
aren't using the fair share scheduler.
To enable the fair share scheduler as default on the system:
# dispadmin -d FSS
To move existing processes under FSS control without rebooting
# priocntl -s -c FSS -i class TS (moves everything from TimeShare
to FSS)
# priocntl -s -c FSS -i pid 1 (moves init to FSS)
Hi,you can also set the scheduling-class in zones configuration:
zonecfg -z zone1
zone1:> set scheduling-class=FSS
zone1:> exit
But, this only makes sense if zone1 doesn't share CPUs with other zones
(also the global zone). Using FSS makes sense only if all processes of a
given CPU set uses the same scheduler. To see which scheduler is used
for a process:
# ps -efC
or, for zone1 procfs only:
# ps -efCz zone1
HTH,
Michael