mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
bug #2174: call top command with only 20 pids (kvm probe)
This commit is contained in:
parent
e9cdb0547e
commit
5973833cc7
@ -129,29 +129,32 @@ module KVM
|
||||
|
||||
def self.get_cpu_info(vms)
|
||||
pids=vms.map {|name, vm| vm[:pid] }
|
||||
|
||||
data=%x{#{CONF[:top]} #{pids.join(',')}}
|
||||
|
||||
lines=data.strip.split("\n")
|
||||
block_size=lines.length/2
|
||||
valid_lines=lines.last(block_size)
|
||||
|
||||
first_domain = 7
|
||||
valid_lines.each_with_index{ |l,i|
|
||||
if l.match 'PID USER'
|
||||
first_domain=i+1
|
||||
break
|
||||
end
|
||||
}
|
||||
|
||||
domain_lines=valid_lines[first_domain..-1]
|
||||
pids.compact!
|
||||
|
||||
cpu={}
|
||||
|
||||
domain_lines.each do |line|
|
||||
d=line.split
|
||||
pids.each_slice(20) do |slice|
|
||||
data=%x{#{CONF[:top]} #{slice.join(',')}}
|
||||
|
||||
cpu[d[0]]=d[8]
|
||||
lines=data.strip.split("\n")
|
||||
block_size=lines.length/2
|
||||
valid_lines=lines.last(block_size)
|
||||
|
||||
first_domain = 7
|
||||
valid_lines.each_with_index{ |l,i|
|
||||
if l.match 'PID USER'
|
||||
first_domain=i+1
|
||||
break
|
||||
end
|
||||
}
|
||||
|
||||
domain_lines=valid_lines[first_domain..-1]
|
||||
|
||||
domain_lines.each do |line|
|
||||
d=line.split
|
||||
|
||||
cpu[d[0]]=d[8]
|
||||
end
|
||||
end
|
||||
|
||||
cpu
|
||||
|
Loading…
x
Reference in New Issue
Block a user