Editing Setting UBC parameters

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
{{Warning|The information below is obsoleted, you should just use [[VSwap]].}}
+
{{UBC toc}}
  
 
[http://forum.swsoft.com/showthread.php?threadid=26770 This thread] has been summarized here on this page.
 
[http://forum.swsoft.com/showthread.php?threadid=26770 This thread] has been summarized here on this page.
Line 20: Line 20:
 
             vmguarpages          0          0    125000 2147483647          0
 
             vmguarpages          0          0    125000 2147483647          0
 
             oomguarpages      59239      59367    125000 2147483647          0
 
             oomguarpages      59239      59367    125000 2147483647          0
             numtcpsock          37        38        440        440          0
+
             numtcpsock          37        38        440        440          0 begin_of_the_skype_highlighting              37 38 440 440 0      end_of_the_skype_highlighting
 
             numflock              3          3        704        704          0
 
             numflock              3          3        704        704          0
 
             numpty                1          1        44        44          0
 
             numpty                1          1        44        44          0
Line 113: Line 113:
 
We don't have such script but you can just take a look at the last column of /proc/user_beancounters. Nonzero values there mean that resource allocations were rejected.
 
We don't have such script but you can just take a look at the last column of /proc/user_beancounters. Nonzero values there mean that resource allocations were rejected.
  
<pre>Rojoblandino wrote:
+
Thank you for everything, unfortunately the only way I have to help is to work with code, I leave something here that I hope you will enjoy and seet very usefully.
Thank you for everything, unfortunately the only way I have to help is to work with code,
 
I leave something here that I hope you will enjoy and see it very usefull. And yes there
 
was not any script but now there is one. Greetings and have fun.</pre>
 
 
 
 
<pre>
 
<pre>
 
#!/bin/bash
 
#!/bin/bash
# Openvz Containers Memory Status
+
# Version 0.5
# Version 1.5
 
 
# Reference: http://wiki.openvz.org/Setting_UBC_parameters
 
# Reference: http://wiki.openvz.org/Setting_UBC_parameters
 
# The program is placed under the GNU Public License (GPL)
 
 
# Author: Roberto Blandino Cisneros.
 
# Author: Roberto Blandino Cisneros.
# Under any change please notify me
+
# rojoblandino@yahoo.com
# rojoblandino(at)yahoo.com
 
 
 
# Advantages or changes:
 
# 1) Calculation of vz containers.
 
# 2) Percentage Calculation.
 
# 3) Avoid simples wrong characters and out of range entry.
 
# 4) Use the same same order of vzlist output.
 
# 5) Problems on vzid param mistakes fixed.
 
# 6) Fixed when 0 passed by param an error appear
 
  
 
# The usage of this script is easy.
 
# The usage of this script is easy.
Line 143: Line 127:
 
# Each container get a number if you have three
 
# Each container get a number if you have three
 
# containers e.g. eva gira huna
 
# containers e.g. eva gira huna
# Depending of the order ar shown in  
+
# Depending of the order they are shown in  
 
# /proc/user_beancounters that number of position
 
# /proc/user_beancounters that number of position
 
# will be taken.
 
# will be taken.
Line 155: Line 139:
  
 
# First thing to do is to get the list of containers
 
# First thing to do is to get the list of containers
vzn=$(($(vzlist | wc -l)-1))
+
vzn=`vzlist | wc -l`
 +
# Save the output into a var and erase the first
 +
# garbage line by subtracting 1.
 +
let $n "n=vzn-1"
  
 
case $# in
 
case $# in
 
     1)
 
     1)
         # Get the container to be calculated
+
         # We get the container to be calculated
         vm_param=$1
+
         vm=$1
 
 
 
         # Just avoiding our human error
 
         # Just avoiding our human error
         datachk=$(echo $vm_param | grep -e [a-z] | wc -l)
+
         datachk=`echo $vm | grep -e [a-z] | wc -l`
 
         if let "datachk>0";then
 
         if let "datachk>0";then
                 printf "That's not a valid number!\n"
+
                 echo "That's not a valid number!"
 
                 exit
 
                 exit
 
         fi
 
         fi
 
+
         # Avoiding another mistake maybe we forgot the quantity of our containers
         # Avoiding another mistake maybe the user forgot the quantity of vm allocated
+
         if let "vm>n";then
         if let "vm_param>vzn";then
+
                 echo "Container out of range, please try a number between 1 and "$n
                 printf "Container out of range, please try a number between 1 and %d\n" "$vzn"
 
 
                 exit
 
                 exit
elif let "vm_param==0";then
 
printf "This value is not available, value must be higher than 0 \n"
 
exit
 
 
         fi
 
         fi
 
+
         # Calculating lines to be jump from the output of user_bancounters.
         # Take the real position of the container to get from the vzlist
+
         # Becuase there is a first garbage line i need 26 spaces from the  
         # for avoiding the first line we add one line more, this mean that id
+
         # beginning, then i need to show the last 24.
        # will be taken from the 2nd line ahead
+
         # (n-vm) because i do not want to see it bacward if you want to change the
        let $vm "vm=vm_param+1"
+
         # order switch the comment with the following line:
 
+
         # let $val "val=26+(24*vm)"
         # Uncomment this and comment the line above if you want to switch the order
+
         let $val "val=26+(24*(n-vm))"
         # let $vm "vm=(n-vm_param)+2"
 
 
 
         # Take the id from the vzlist output
 
         id_vm=$(vzlist | head -$vm | tail -1|awk '{print $1}')
 
 
 
        # Get the line where is located the vm to be calculated
 
        val=$(grep -n $id_vm /proc/user_beancounters | awk -F: '{print $1}')
 
 
 
        # Adding the 23 block where the info is located
 
         let $val "val=23+(val)"
 
  
 
         # If you want to see all values of the vm uncomment this
 
         # If you want to see all values of the vm uncomment this
         #head -$val /proc/user_beancounters  | tail -24
+
         #cat /proc/user_beancounters  | head -$val | tail -24  
  
 
         # The math start here.
 
         # The math start here.
Line 202: Line 174:
 
         # you must read carefully the page http://wiki.openvz.org/Setting_UBC_parameters
 
         # you must read carefully the page http://wiki.openvz.org/Setting_UBC_parameters
 
         # the only thing i do was to get the values explained already there.
 
         # the only thing i do was to get the values explained already there.
         kmemsize=$(head -$val /proc/user_beancounters | tail -24 | head -1 | tail -1 | awk '{print $3}')
+
         kmemsize=`cat /proc/user_beancounters  | head -$val | tail -24 | head -1 | tail -1 | awk '{print $3}'`
         oomguarpages=$(head -$val /proc/user_beancounters | tail -24 | head -9 | tail -1 | awk '{print $2}')
+
         oomguarpages=`cat /proc/user_beancounters  | head -$val | tail -24 | head -9 | tail -1 | awk '{print $2}'`
         tcpsndbuf=$(head -$val /proc/user_beancounters | tail -24 | head -14 | tail -1 | awk '{print $2}')
+
         tcpsndbuf=`cat /proc/user_beancounters  | head -$val | tail -24 | head -14 | tail -1 | awk '{print $2}'`
         tcprcvbuf=$(head -$val /proc/user_beancounters  | tail -24 | head -15 | tail -1 | awk '{print $2}')
+
         tcprcvbuf=`cat /proc/user_beancounters  | head -$val | tail -24 | head -15 | tail -1 | awk '{print $2}'`
         othersockbuf=$(head -$val /proc/user_beancounters | tail -24 | head -16 | tail -1 | awk '{print $2}')
+
         othersockbuf=`cat /proc/user_beancounters  | head -$val | tail -24 | head -16 | tail -1 | awk '{print $2}'`
         dgramrcvbuf=$(head -$val /proc/user_beancounters | tail -24 | head -17 | tail -1 | awk '{print $2}')
+
         dgramrcvbuf=`cat /proc/user_beancounters  | head -$val | tail -24 | head -17 | tail -1 | awk '{print $2}'`
         oomguarpages_barrier=$(head -$val /proc/user_beancounters | tail -24 | head -9 | tail -1 | awk '{print $4}')
+
         oomguarpages_barrier=`cat /proc/user_beancounters  | head -$val | tail -24 | head -9 | tail -1 | awk '{print $4}'`
  
         # Three current values need to be calculated:
+
         # We need to calculate three current values:
 
         # oomguarpages current value (MEM+SWAP actual usage)  
 
         # oomguarpages current value (MEM+SWAP actual usage)  
 
         # socket buffers current value
 
         # socket buffers current value
         # kmemsize current value
+
         # socket buffers current value
 
         let $resp "resp=((oomguarpages*4096)+tcpsndbuf+tcprcvbuf+othersockbuf+dgramrcvbuf+kmemsize)"
 
         let $resp "resp=((oomguarpages*4096)+tcpsndbuf+tcprcvbuf+othersockbuf+dgramrcvbuf+kmemsize)"
  
         # Calculating the oom Barrier
+
         # We need to calculate the oom Barrier
 
         let $oom "oom=(oomguarpages_barrier*4096)"
 
         let $oom "oom=(oomguarpages_barrier*4096)"
 
 
         # Getting the percentage of the output
 
         # Getting the percentage of the output
 
         let $porc "porc=(resp*100)/oom"
 
         let $porc "porc=(resp*100)/oom"
  
         # Showing the ID and Percentage of the container
+
         # We show the container ID and Percentage
         #echo $(head -$val /proc/user_beancounters | tail -24| head -1 | awk -F: '{print $1}')" Status: "$porc"%"
+
         echo `cat /proc/user_beancounters | head -$val | tail -24| head -1 | awk -F: '{print $1}'`" Status: "$porc"%"
         printf "%s Status: %d %%\n" "$(head -$val /proc/user_beancounters | tail -24| head -1 | awk -F: '{print $1}' | sed "s/^\ *//g")" "$porc"
+
         # We show the two important values.
 +
        echo -e "System Count:\t-\tOOM Barrier:"
 +
        echo -e $resp"\t-\t"$oom
  
        # Showing the two important values.
+
         # Uncoment this if you just want to now if is below to barrier
        string1="System Count:"
 
        string2="OOM Barrier:"
 
        ls1=${#string1}
 
        ls2=${#resp}
 
        if let "ls1<ls2";then
 
          let $ls3 "ls3=ls2-ls1"
 
          for (( i=0;i<$ls3;i++ ));do
 
            space_line=$space_line" "
 
          done
 
          printf "System Count:%s\t-\tOOM Barrier:\n" "$space_line"
 
          printf "%s\t-\t%s\n" "$resp" "$oom"
 
        elif let "ls1>ls2";then
 
          let $ls3 "ls3=ls1-ls2"
 
          for (( i=0;i<$ls3;i++ ));do
 
            space_line=$space_line" "
 
          done
 
          printf "System Count:\t-\tOOM Barrier:\n"
 
          printf "%s%s\t-\t%s\n" "$resp" "$space_line" "$oom"
 
else
 
          printf "System Count:\t-\tOOM Barrier:\n"
 
          printf "%s\t-\t%s\n" "$resp" "$oom"
 
        fi
 
         # Uncoment this if you just want to now if it is below to barrier
 
 
         # it means is healthy if resp is less than oom
 
         # it means is healthy if resp is less than oom
 
         # if let "resp<oom";then
 
         # if let "resp<oom";then
Line 268: Line 218:
 
</pre>
 
</pre>
  
=== Can you please elaborate the difference between oomguarpages and privvmpages? ===
+
=== Can you please elaborate the difference between oomguarpages and privvmpages?===
 
+
Both seem to be showing mem + swap. Is the difference between two about allocated but not used pages? I mean, privvmpages show allocated (some of which might not be used) for mem + swap, whereas oomguarpages show allocated, all of which are used, mem + swap? ====
Both seem to be showing mem + swap. Is the difference between two about allocated but not used pages? I mean, privvmpages show allocated (some of which might not be used) for mem + swap, whereas oomguarpages show allocated, all of which are used, mem + swap?
 
 
 
 
==== Answer: ====
 
==== Answer: ====
 
Yes, oomguarpages current value shows actual usage of MEM+SWAP.
 
Yes, oomguarpages current value shows actual usage of MEM+SWAP.

Please note that all contributions to OpenVZ Virtuozzo Containers Wiki may be edited, altered, or removed by other contributors. If you don't want your writing to be edited mercilessly, then don't submit it here.
If you are going to add external links to an article, read the External links policy first!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Template used on this page: