Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

zone.cpu-shares & FSS scheduling class Solaris 10 zone - Beginner Question

405 views
Skip to first unread message

underh20.s...@gmail.com

unread,
Apr 8, 2009, 7:41:02 PM4/8/09
to
I just built a simple zone called "zone1" in my solaris 10 (10/08)
server. zone1 has "zone.cpu-shares" resource defined(see below). We
plan to install/configure the Oracle instance in zone1 down the road
with this cpu-shares resource. However, there's "FSS is not the
default scheduling class WARNING" message anytime I reboot zone1 (see
below).

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)

ITguy

unread,
Apr 8, 2009, 8:32:12 PM4/8/09
to
> I just built a simple zone called "zone1" in my solaris 10 (10/08)
> server.  zone1 has "zone.cpu-shares" resource defined(see below). We
> plan to install/configure the Oracle instance in zone1 down the road
> with this cpu-shares resource.  However, there's "FSS is not the
> default scheduling class WARNING" message anytime I reboot zone1 (see
> below).
>
> 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
....

> 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)

Michael Weis

unread,
Apr 9, 2009, 5:24:26 AM4/9/09
to
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

0 new messages