This page contains scripts, links to other sites and "howto" docs that the staff at Open Technologies Inc. commonly use. You are free to use this material as you wish, but we take NO responsibility for your proper or improper use of this material. See Limitation of Liability below. -------------------------------------------------------------------------------- # # setzoneShares.sh # #---Description: Script used to set the number of CPU "shares" for a given Solaris 10 zone when it boots. # The "setzonesharesnow.sh" is used to set the shares for a zone while running (i.e., on the fly). # Usage: setzoneshares.sh # # Author: Phillip Fiedler (Open Technologies, Inc.) if [ -n "$1" -a -n "$2" -a -n "$3" ]; then chk=`pooladm | grep "pool $3"` if [ "$chk" == "" ]; then echo "Pool doesn't exist. Exiting." exit fi chk=`grep "^$1" /etc/zones/index` if [ "$chk" == "" ]; then echo "Zone doesn't exist. Exiting." exit fi if [ "`zonecfg -z $1 info | grep 'zone.cpu-shares'`" != "" ]; then zonecfg -z $1 remove rctl name=zone.cpu-shares fi echo "set pool=$3" > /tmp/zoneRS.zone echo "set scheduling-class=FSS" >> /tmp/zoneRS.zone echo "add rctl" >> /tmp/zoneRS.zone echo "set name=zone.cpu-shares" >> /tmp/zoneRS.zone echo "add value (priv=privileged,limit=$2,action=none)" >> /tmp/zoneRS.zone echo "end" >> /tmp/zoneRS.zone echo "verify" >> /tmp/zoneRS.zone echo "commit" >> /tmp/zoneRS.zone echo "info" >> /tmp/zoneRS.zone echo "exit" >> /tmp/zoneRS.zone zonecfg -z $1 -f /tmp/zoneRS.zone #rm /tmp/zoneRS.zone else echo "Usage: setzoneshares.sh " fi echo "Current Pools:" pooladm | grep "pool " echo "" echo "Current Zones:" zoneadm list -civ echo "" echo "Current Zone Shares:" for i in `cd /etc/zones; ls -1 *.xml`; do i=`echo $i | awk '{FS="."; print $1}'` if [ "$i" != "SUNWblank" -a "$i" != "SUNWdefault" -a "$i" != "SUNWtsoldef" -a "$i" != "SUNWsolaris8" -a "$i" != "SUNWsolaris9" ]; then cat /etc/zones/$i.xml | grep "pool=" > /tmp/a a=$i", "`cat /tmp/a | awk '{print $5}'` cat /etc/zones/$i.xml | grep 'rctl-value priv="privileged" limit=' > /tmp/a a=$a", "`cat /tmp/a | awk '{print $3}'`" (at boot), limit=" prctl -i zone -n zone.cpu-shares $i | grep privileged > /tmp/a a=$a`cat /tmp/a | awk '{print $2}'`" (now)" echo $a fi done echo "" exit 0 -------------------------------------------------------------------------------- LIMITATION OF LIABILITY TO THE FULL EXTENT PERMITTED BY LAW, HOST IS NOT LIABLE TO YOU OR ANY OTHER INDIVIDUAL OR ENTITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, PUNITIVE, SPECIAL OR CONSEQUENTIAL DAMAGES RELATED TO OR ARISING OUT OF ANY USE OF, ACCESS TO, OR INABILITY TO ACCESS THIS WEBSITE, CONTENT, SERVICES, OR OF ANY OTHER LINKED WEBSITE OR EXTERNAL RESOURCE INCLUDING, WITHOUT LIMITATION, ANY LOST PROFITS, LOST SALES, LOST REVENUE, LOSS OF GOODWILL, BUSINESS INTERRUPTION, LOSS OF PROGRAMS OR OTHER DATA EVEN IF OPEN TECHNOLOGIES INC. IS EXPRESSLY ADVISED OR AWARE OF THE POSSIBILITY OF SUCH DAMAGES OR LOSSES. YOU ASSUME ALL RISK FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR LOSS OF DATA THAT RESULTS FROM OBTAINING ANY CONTENT FROM THE WEBSITE, INCLUDING ANY DAMAGES RESULTING FROM COMPUTER VIRUSES, WORMS, OR OTHER ITEMS OF A DESTRUCTIVE NATURE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU.