mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-06-16 12:52:08 +00:00
fix cpu usage
This commit is contained in:
parent
5534dd1ad1
commit
ae4915a20d
@ -1798,6 +1798,8 @@ sub vmstatus {
|
|||||||
my $list = vzlist();
|
my $list = vzlist();
|
||||||
my ($uptime) = PVE::ProcFSTools::read_proc_uptime(1);
|
my ($uptime) = PVE::ProcFSTools::read_proc_uptime(1);
|
||||||
|
|
||||||
|
my $cpucount = $cpuinfo->{cpus} || 1;
|
||||||
|
|
||||||
foreach my $vmid (keys %$list) {
|
foreach my $vmid (keys %$list) {
|
||||||
next if $opt_vmid && ($vmid ne $opt_vmid);
|
next if $opt_vmid && ($vmid ne $opt_vmid);
|
||||||
|
|
||||||
@ -1820,12 +1822,13 @@ sub vmstatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$d->{cpus} = ($conf->{sockets} || 1) * ($conf->{cores} || 1);
|
$d->{cpus} = ($conf->{sockets} || 1) * ($conf->{cores} || 1);
|
||||||
|
$d->{cpus} = $cpucount if $d->{cpus} > $cpucount;
|
||||||
|
|
||||||
$d->{name} = $conf->{name} || "VM $vmid";
|
$d->{name} = $conf->{name} || "VM $vmid";
|
||||||
$d->{maxmem} = $conf->{memory} ? $conf->{memory}*(1024*1024) : 0;
|
$d->{maxmem} = $conf->{memory} ? $conf->{memory}*(1024*1024) : 0;
|
||||||
|
|
||||||
$d->{uptime} = 0;
|
$d->{uptime} = 0;
|
||||||
$d->{cpu} = 0;
|
$d->{cpu} = 0;
|
||||||
$d->{relcpu} = 0;
|
|
||||||
$d->{mem} = 0;
|
$d->{mem} = 0;
|
||||||
|
|
||||||
$d->{netout} = 0;
|
$d->{netout} = 0;
|
||||||
@ -1848,7 +1851,6 @@ sub vmstatus {
|
|||||||
$d->{netin} += $netdev->{$dev}->{transmit};
|
$d->{netin} += $netdev->{$dev}->{transmit};
|
||||||
}
|
}
|
||||||
|
|
||||||
my $cpucount = $cpuinfo->{cpus} || 1;
|
|
||||||
my $ctime = gettimeofday;
|
my $ctime = gettimeofday;
|
||||||
|
|
||||||
foreach my $vmid (keys %$list) {
|
foreach my $vmid (keys %$list) {
|
||||||
@ -1874,8 +1876,6 @@ sub vmstatus {
|
|||||||
|
|
||||||
my $used = $pstat->{utime} + $pstat->{stime};
|
my $used = $pstat->{utime} + $pstat->{stime};
|
||||||
|
|
||||||
my $vcpus = $d->{cpus} > $cpucount ? $cpucount : $d->{cpus};
|
|
||||||
|
|
||||||
$d->{uptime} = int(($uptime - $pstat->{starttime})/$cpuinfo->{user_hz});
|
$d->{uptime} = int(($uptime - $pstat->{starttime})/$cpuinfo->{user_hz});
|
||||||
|
|
||||||
if ($pstat->{vsize}) {
|
if ($pstat->{vsize}) {
|
||||||
@ -1888,7 +1888,6 @@ sub vmstatus {
|
|||||||
time => $ctime,
|
time => $ctime,
|
||||||
used => $used,
|
used => $used,
|
||||||
cpu => 0,
|
cpu => 0,
|
||||||
relcpu => 0,
|
|
||||||
};
|
};
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
@ -1898,17 +1897,14 @@ sub vmstatus {
|
|||||||
if ($dtime > 1000) {
|
if ($dtime > 1000) {
|
||||||
my $dutime = $used - $old->{used};
|
my $dutime = $used - $old->{used};
|
||||||
|
|
||||||
$d->{cpu} = $dutime/$dtime;
|
$d->{cpu} = (($dutime/$dtime)* $cpucount) / $d->{cpus};
|
||||||
$d->{relcpu} = ($d->{cpu} * $cpucount) / $vcpus;
|
|
||||||
$last_proc_pid_stat->{$pid} = {
|
$last_proc_pid_stat->{$pid} = {
|
||||||
time => $ctime,
|
time => $ctime,
|
||||||
used => $used,
|
used => $used,
|
||||||
cpu => $d->{cpu},
|
cpu => $d->{cpu},
|
||||||
relcpu => $d->{relcpu},
|
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
$d->{cpu} = $old->{cpu};
|
$d->{cpu} = $old->{cpu};
|
||||||
$d->{relcpu} = $old->{relcpu};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user