#!/usr/bin/ksh # # zonefss - zone FSS administration. Solaris 10. # # 05-Apr-2005, ver 0.50 (first release) # # USAGE: zonefss -l | -z zone shares # eg, # zonefss -l # list FSS share values for all zones # zonefss -z global 10 # set the global zone shares to 10 # # Standard Disclaimer: This is freeware, use at your own risk. # # 05-Apr-2005 Brendan Gregg Created this. # ### Process Arguments PATH=/usr/bin:/usr/sbin list=0 set=0 if [[ "$1" == "-l" ]]; then shift; list=1 fi if [[ "$1" == "-z" ]]; then shift; set=1 zone=$1; shift shares=$1; shift fi ### List FSS shares if (( list )); then printf "%4s %-16s %s\n" "ID" "NAME" "SHARES" for zone in `zoneadm list` do prctl -n zone.cpu-shares -i zone $zone | awk ' $1 ~ /^zone:/ { zone = $3; id = substr($2,0,(length($2)-1)); } $1 ~ /^privileged$/ { printf("%4s %-16s %d\n",id,zone,$2); } ' done exit fi ### Set FSS shares if (( set )); then prctl -n zone.cpu-shares -v $shares -r -i zone $zone exit fi ### Print usage echo >&2 "USAGE: zonefss -l | -z zone shares eg, zonefss -l # list FSS share values for all zones zonefss -z global 10 # set the global zone shares to 10"