[one-users] Some questions about overcommitment in OpenNebula 4.2 using KVM

Gerry O'Brien gerry at scss.tcd.ie
Mon Oct 21 05:24:29 PDT 2013


On 18/10/2013 20:10, Michał Madziar wrote:
> On 2013-10-18 17:36, Gerry O'Brien wrote:
>> On 16/10/2013 20:40, Michał Madziar wrote:
>>> On 2013-10-16 21:00, Gerry O'Brien wrote:
>>>> On 16/10/2013 17:19, Michał Madziar wrote: _requirements" lives?
>>> I didn't touch the scheduler, just patched the reporting script.
>>> On my system it exists in ~oneadmin/remotes/im/kvm.d/kvm.rb and is
>>> copied by ON (idr when exactly - restart?)  to /var/tmp/one/im/kvm.d/ on
>>> every host in cluster.
>>> I just added above lines near the end of script - before printing,
>>> copied it manually and about minute later changes were visible in chart.
>> Hi,
>>      This file get copied over to the host when oned is restarted. If
>> you run it on the host it reports the increased memory size. However,
>> the scheduler seems to ignore this. I'm running version 4.2. Is that
>> what you are running?
> Remember that values reported to ON must be consistent - total == free +
> used or ON will ignore them.
>
> That how it's look like on our system:
> http://img822.imageshack.us/img822/1152/n5g6.png
> _______________________________________________
> Users mailing list
> Users at lists.opennebula.org
> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
Hi,

     Below is the modified section of kvm.rb. I have only added three 
lines to try to report double the actual memory.

39d38
<         $total_memory = $total_memory.to_i * 2
70d68
< $total_memory = $total_memory.to_i * 2
75d72
< $free_memory=$total_memory - $used_memory.to_i


When I run the modified kvm.rb on the host it reports back twice the 
memory but ON seems to ignore it.
Do you know if VMEMORY has been implemented?









nodeinfo_text.split(/\n/).each{|line|
     if     line.match('^CPU\(s\)')
         $total_cpu   = line.split(":")[1].strip.to_i * 100
     elsif  line.match('^CPU frequency')
         $cpu_speed   = line.split(":")[1].strip.split(" ")[0]
     elsif  line.match('^Memory size')
         $total_memory = line.split(":")[1].strip.split(" ")[0]
         $total_memory = $total_memory.to_i * 2
     end
}

######
#   for everything else, top & proc
#####

NETINTERFACE = "eth1"

top_text=`top -bin2`
exit(-1) if $?.exitstatus != 0

top_text.gsub!(/^top.*^top.*?$/m, "") # Strip first top output

top_text.split(/\n/).each{|line|
     if line.match('^%?Cpu')
         line[7..-1].split(",").each{|elemento|
             temp = elemento.strip.split(/[% ]/)
             if temp[1]=="id"
             idle = temp[0]
             $free_cpu = idle.to_f * $total_cpu.to_f / 100
             $used_cpu = $total_cpu.to_f - $free_cpu
                 break
             end

         }
     end
}

$total_memory = `free -k|grep "Mem:" | awk '{print $2}'`
$total_memory = $total_memory.to_i * 2
tmp=`free -k|grep "buffers\/cache"|awk '{print $3 " " $4}'`.split

$used_memory=tmp[0]
$free_memory=tmp[1]
$free_memory=$total_memory - $used_memory.to_i




-- 
Gerry O'Brien

Systems Manager
School of Computer Science and Statistics
Trinity College Dublin
Dublin 2
IRELAND

00 353 1 896 1341




More information about the Users mailing list