[pve-devel] [PATCH manager 1/4] add lock to /cluster/resources

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Mar 6 14:54:52 CET 2019


On 2/27/19 12:32 PM, Dominik Csapak wrote:
> this adds the lock to the resultset of a vm in /cluster/resources
> giving us the possibility of showing if a vm is locked/backed up/etc.
> 
> to achieve this, we load the config of the vm from pmxcfs. with this
> we have access to the full configuration of the vm and could add
> further fields if we want to
> 
> disadvantage is a rather small cpu/memory penalty, i benchmarked
> a virtual cluster with ~3000 vms:
> 
> it adds about 500ms the first time of the api call, and after that
> about 50-100ms, and adds about 2-4MB of memory per worker
off-list you told me that that the default resource API request needed
500ms per call without this, so it is a 10% - 20% increase, not quite
nothing, but if you consider the fact that we then have a lot more
information readily available it's also not really _that_ much.

If there are no objections by others I'll consider adding this, albeit
not yet 100% sure, but also in lack of a sane and better solution...

> 
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
>  PVE/API2/Cluster.pm | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/PVE/API2/Cluster.pm b/PVE/API2/Cluster.pm
> index c72a075b..bf45186c 100644
> --- a/PVE/API2/Cluster.pm
> +++ b/PVE/API2/Cluster.pm
> @@ -299,7 +299,10 @@ __PACKAGE__->register_method({
>  	    foreach my $vmid (keys %$idlist) {
>  
>  		my $data = $idlist->{$vmid};
> +		my $typedir = $data->{type} eq 'qemu' ? 'qemu-server' : 'lxc';
> +		my $conf = PVE::Cluster::cfs_read_file("nodes/$data->{node}/$typedir/$vmid.conf");
>  		my $entry = PVE::API2Tools::extract_vm_stats($vmid, $data, $rrd);
> +		$entry->{lock} = $conf->{lock} if defined($conf->{lock});
>  		if (my $pool = $usercfg->{vms}->{$vmid}) {
>  		    $entry->{pool} = $pool;
>  		    if (my $pe = $pooldata->{$pool}) {
> 




More information about the pve-devel mailing list