[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