public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default
@ 2024-04-16 12:09 Fiona Ebner
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 1/5] vzdump: actually honor schema defaults for performance Fiona Ebner
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Fiona Ebner @ 2024-04-16 12:09 UTC (permalink / raw)
  To: pve-devel

Changes in v4 (Thanks to Thomas for feedback!):
    * rename tab from 'Performance' to 'Advanced'
    * move repeat-missed setting there too
    * update docs to clarify that those settings can be found in the
      advanced tab

Changes in v3 (Thanks to Thomas for feedback!):
    * new patch to actually honor default values for performance
      format/schema
    * new patch to switch to per-property fallback for performance
      properties
    * also handle new (came in after v2) pbs-entries-max in UI (make
      sure to preserve value, but don't expose it)
    * drop already applied patch

Improve fallback for the 'performance' sub-properties by using a
per-property fallback and honor schema defaults.

Expose commonly used advanced properties in the backup job UI under a
new tab.


manager:

Fiona Ebner (5):
  vzdump: actually honor schema defaults for performance
  vzdump: use per-property fallback for performance settings
  close #4513: ui: backup job: add tab for advanced options
  ui: backup job: disable zstd thread count field when zstd isn't used
  ui: backup job: move repeat-missed option to advanced tab

 PVE/VZDump.pm                               |  33 +++-
 www/manager6/Makefile                       |   1 +
 www/manager6/dc/Backup.js                   |  42 +++--
 www/manager6/panel/BackupAdvancedOptions.js | 169 ++++++++++++++++++++
 4 files changed, 228 insertions(+), 17 deletions(-)
 create mode 100644 www/manager6/panel/BackupAdvancedOptions.js


docs:

Fiona Ebner (2):
  backup: update information about performance settings
  backup: clarify where repeat-missed option can be found now

 vzdump.adoc | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

-- 
2.39.2





^ permalink raw reply	[flat|nested] 9+ messages in thread

* [pve-devel] [PATCH v4 manager 1/5] vzdump: actually honor schema defaults for performance
  2024-04-16 12:09 [pve-devel] [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default Fiona Ebner
@ 2024-04-16 12:09 ` Fiona Ebner
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 2/5] vzdump: use per-property fallback for performance settings Fiona Ebner
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Fiona Ebner @ 2024-04-16 12:09 UTC (permalink / raw)
  To: pve-devel

The 'performance' option itself defines no 'default' in the schema, so
what happened is that the defaults used by the backends (i.e. QEMU and
proxmox-backup-client) would be used. Luckily, they correspond to the
default values defined in the schema, i.e. in the 'backup-performance'
format. Make the code future-proof and use the actual defaults defined
in the schema instead of relying on that correspondence.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---

No changes in v4.

 PVE/VZDump.pm | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/PVE/VZDump.pm b/PVE/VZDump.pm
index 152eb3e5..b084fb5d 100644
--- a/PVE/VZDump.pm
+++ b/PVE/VZDump.pm
@@ -277,8 +277,14 @@ sub read_vzdump_defaults {
 	     defined($default) ? ($_ => $default) : ()
 	} keys %$confdesc_for_defaults
     };
+    my $performance_fmt = PVE::JSONSchema::get_format('backup-performance');
+    $defaults->{performance} = {
+	map {
+	    my $default = $performance_fmt->{$_}->{default};
+	    defined($default) ? ($_ => $default) : ()
+	} keys $performance_fmt->%*
+    };
     $parse_prune_backups_maxfiles->($defaults, "defaults in VZDump schema");
-    parse_performance($defaults);
 
     my $raw;
     eval { $raw = PVE::Tools::file_get_contents($fn); };
-- 
2.39.2





^ permalink raw reply	[flat|nested] 9+ messages in thread

* [pve-devel] [PATCH v4 manager 2/5] vzdump: use per-property fallback for performance settings
  2024-04-16 12:09 [pve-devel] [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default Fiona Ebner
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 1/5] vzdump: actually honor schema defaults for performance Fiona Ebner
@ 2024-04-16 12:09 ` Fiona Ebner
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 3/5] close #4513: ui: backup job: add tab for advanced options Fiona Ebner
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Fiona Ebner @ 2024-04-16 12:09 UTC (permalink / raw)
  To: pve-devel

Currently, fallback for the 'performance' option is done as a whole,
taking away flexibility from the user. It also means that when only
one of the two sub-properties is specified, the other one will default
to the backend (i.e. QEMU or proxmox-backup-client) default rather
than the schema default. For the latter point in particular, it can be
argued to be incorrect. These limitations will only get worse in the
future with more sub-properties.

Switch to a per-property fallback mechanism to improve the situation,
having each go through the usual preference order (CLI/job > node-wide
default > schema default).

Technically, this is a breaking change, but pbs-entries-max is rather
new and potential for breakage seems rather low. Requirements for
breakage:
* job (or CLI) that defines only one of the performance options
* job also covers a guest where the other performance option applies
* the other performance option is defined in the node-wide configuration
* the node-wide setting is worse for the job than the implicit backend
  default (because this change will have the node-wide default win over
  the implicit backend default).

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---

No changes in v4.

 PVE/VZDump.pm | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/PVE/VZDump.pm b/PVE/VZDump.pm
index b084fb5d..02244cd7 100644
--- a/PVE/VZDump.pm
+++ b/PVE/VZDump.pm
@@ -139,6 +139,17 @@ my sub parse_performance {
     }
 }
 
+my sub merge_performance {
+    my ($prefer, $fallback) = @_;
+
+    my $res = {};
+    for my $opt (keys PVE::JSONSchema::get_format('backup-performance')->%*) {
+	$res->{$opt} = $prefer->{$opt} // $fallback->{$opt}
+	    if defined($prefer->{$opt}) || defined($fallback->{$opt});
+    }
+    return $res;
+}
+
 my $parse_prune_backups_maxfiles = sub {
     my ($param, $kind) = @_;
 
@@ -312,8 +323,12 @@ sub read_vzdump_defaults {
     $parse_prune_backups_maxfiles->($res, "options in '$fn'");
     parse_performance($res);
 
-    foreach my $key (keys %$defaults) {
-	$res->{$key} = $defaults->{$key} if !defined($res->{$key});
+    for my $key (keys $defaults->%*) {
+	if (!defined($res->{$key})) {
+	    $res->{$key} = $defaults->{$key};
+	} elsif ($key eq 'performance') {
+	    $res->{$key} = merge_performance($res->{$key}, $defaults->{$key});
+	}
     }
 
     if (defined($res->{storage}) && defined($res->{dumpdir})) {
@@ -598,8 +613,10 @@ sub new {
 	if ($k eq 'dumpdir' || $k eq 'storage') {
 	    $opts->{$k} = $defaults->{$k} if !defined ($opts->{dumpdir}) &&
 		!defined ($opts->{storage});
-	} else {
-	    $opts->{$k} = $defaults->{$k} if !defined ($opts->{$k});
+	} elsif (!defined($opts->{$k})) {
+	    $opts->{$k} = $defaults->{$k};
+	} elsif ($k eq 'performance') {
+	    $opts->{$k} = merge_performance($opts->{$k}, $defaults->{$k});
 	}
     }
 
-- 
2.39.2





^ permalink raw reply	[flat|nested] 9+ messages in thread

* [pve-devel] [PATCH v4 manager 3/5] close #4513: ui: backup job: add tab for advanced options
  2024-04-16 12:09 [pve-devel] [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default Fiona Ebner
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 1/5] vzdump: actually honor schema defaults for performance Fiona Ebner
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 2/5] vzdump: use per-property fallback for performance settings Fiona Ebner
@ 2024-04-16 12:09 ` Fiona Ebner
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 4/5] ui: backup job: disable zstd thread count field when zstd isn't used Fiona Ebner
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Fiona Ebner @ 2024-04-16 12:09 UTC (permalink / raw)
  To: pve-devel

pigz is not exposed, because it only works after manually installing
the pigz package.

ionice is not exposed, because it only works in combination with the
BFQ scheduler and even then not in all cases (only affects the
compressor when doing snapshot/suspend mode backup of a VM).

The pbs-entries-max performance option is not exposed. It is rather
niche and hard to understand. It serves as an escape hatch for
rare/extreme cases.

These can still be added with appropriate notes if there is enough
user demand.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---

Changes in v4:
  * rename to advanced

 www/manager6/Makefile                       |   1 +
 www/manager6/dc/Backup.js                   |  12 ++
 www/manager6/panel/BackupAdvancedOptions.js | 142 ++++++++++++++++++++
 3 files changed, 155 insertions(+)
 create mode 100644 www/manager6/panel/BackupAdvancedOptions.js

diff --git a/www/manager6/Makefile b/www/manager6/Makefile
index c756cae6..0f1779d5 100644
--- a/www/manager6/Makefile
+++ b/www/manager6/Makefile
@@ -97,6 +97,7 @@ JSSRC= 							\
 	grid/Replication.js				\
 	grid/ResourceGrid.js				\
 	panel/ConfigPanel.js				\
+	panel/BackupAdvancedOptions.js			\
 	panel/BackupJobPrune.js				\
 	panel/HealthWidget.js				\
 	panel/IPSet.js					\
diff --git a/www/manager6/dc/Backup.js b/www/manager6/dc/Backup.js
index 70903bdc..aaa319f4 100644
--- a/www/manager6/dc/Backup.js
+++ b/www/manager6/dc/Backup.js
@@ -196,6 +196,11 @@ Ext.define('PVE.dc.BackupEdit', {
 				PVE.Utils.unEscapeNotesTemplate(data['notes-template']);
 			}
 
+			if (data.performance) {
+			    Object.assign(data, data.performance);
+			    delete data.performance;
+			}
+
 			view.setValues(data);
 		    },
 		});
@@ -466,6 +471,13 @@ Ext.define('PVE.dc.BackupEdit', {
 			},
 		    ],
 		},
+		{
+		    xtype: 'pveBackupAdvancedOptionsPanel',
+		    title: gettext('Advanced'),
+		    cbind: {
+			isCreate: '{isCreate}',
+		    },
+		},
 	    ],
 	},
     ],
diff --git a/www/manager6/panel/BackupAdvancedOptions.js b/www/manager6/panel/BackupAdvancedOptions.js
new file mode 100644
index 00000000..4d74ba3d
--- /dev/null
+++ b/www/manager6/panel/BackupAdvancedOptions.js
@@ -0,0 +1,142 @@
+/*
+ * Input panel for advanced backup options intended to be used as part of an edit/create window.
+ */
+Ext.define('PVE.panel.BackupAdvancedOptions', {
+    extend: 'Proxmox.panel.InputPanel',
+    xtype: 'pveBackupAdvancedOptionsPanel',
+    mixins: ['Proxmox.Mixin.CBind'],
+
+    cbindData: function() {
+	let me = this;
+	me.isCreate = !!me.isCreate;
+	return {};
+    },
+
+    onGetValues: function(formValues) {
+	if (this.needMask) { // isMasked() may not yet be true if not rendered once
+	    return {};
+	}
+
+	let options = { 'delete': [] };
+
+	let performance = {};
+	let performanceOptions = ['max-workers', 'pbs-entries-max'];
+
+	for (const [key, value] of Object.entries(formValues)) {
+	    if (performanceOptions.includes(key)) {
+		performance[key] = value;
+	    // deleteEmpty is not currently implemented for pveBandwidthField
+	    } else if (key === 'bwlimit' && value === '') {
+		options.delete.push('bwlimit');
+	    } else if (key === 'delete') {
+		if (Array.isArray(value)) {
+		    value.filter(opt => !performanceOptions.includes(opt)).forEach(
+			opt => options.delete.push(opt),
+		    );
+		} else if (!performanceOptions.includes(formValues.delete)) {
+		    options.delete.push(value);
+		}
+	    } else {
+		options[key] = value;
+	    }
+	}
+
+	if (Object.keys(performance).length > 0) {
+	    options.performance = PVE.Parser.printPropertyString(performance);
+	} else {
+	    options.delete.push('performance');
+	}
+
+	if (this.isCreate) {
+	    delete options.delete;
+	}
+
+	return options;
+    },
+
+    column1: [
+	{
+	    xtype: 'pveBandwidthField',
+	    name: 'bwlimit',
+	    fieldLabel: gettext('Bandwidth Limit'),
+	    emptyText: gettext('use fallback'),
+	    backendUnit: 'KiB',
+	    allowZero: true,
+	    emptyValue: '',
+	    autoEl: {
+		tag: 'div',
+		'data-qtip': Ext.String.format(gettext('Use {0} for unlimited'), 0),
+	    },
+	},
+	{
+	    xtype: 'proxmoxintegerfield',
+	    name: 'zstd',
+	    fieldLabel: Ext.String.format(gettext('{0} Threads'), 'Zstd'),
+	    fieldStyle: 'text-align: right',
+	    emptyText: gettext('use fallback'),
+	    minValue: 0,
+	    cbind: {
+		deleteEmpty: '{!isCreate}',
+	    },
+	    autoEl: {
+		tag: 'div',
+		'data-qtip': gettext('With 0, half of the available cores are used'),
+	    },
+	},
+	{
+	    xtype: 'proxmoxintegerfield',
+	    name: 'max-workers',
+	    minValue: 1,
+	    maxValue: 256,
+	    fieldLabel: gettext('VM Workers'),
+	    fieldStyle: 'text-align: right',
+	    emptyText: gettext('use fallback'),
+	    cbind: {
+		deleteEmpty: '{!isCreate}',
+	    },
+	},
+	{
+	    // It's part of the 'performance' property string, so have a field to preserve the
+	    // value, but don't expose it. It's a rather niche setting and difficult to
+	    // convey/understand what it does.
+	    xtype: 'proxmoxintegerfield',
+	    name: 'pbs-entries-max',
+	    hidden: true,
+	    fieldLabel: 'TODO',
+	    fieldStyle: 'text-align: right',
+	    emptyText: gettext('use fallback'),
+	    cbind: {
+		deleteEmpty: '{!isCreate}',
+	    },
+	},
+    ],
+
+    column2: [
+	{
+	    xtype: 'displayfield',
+	    value: gettext('Limit I/O bandwidth'),
+	},
+	{
+	    xtype: 'displayfield',
+	    value: `${gettext('Threads used for zstd compression')} (${gettext('non-PBS')})`,
+	},
+	{
+	    xtype: 'displayfield',
+	    value: `${gettext('I/O workers in the QEMU process')} (${gettext('VM only')})`,
+	},
+	{
+	    xtype: 'displayfield',
+	    value: 'TODO',
+	    hidden: true, // see definition of pbs-entries-max field
+	},
+    ],
+
+    columnB: [
+	{
+	    xtype: 'component',
+	    userCls: 'pmx-hint',
+	    padding: '5 1',
+	    html: gettext("Note that vzdump.conf is used as a fallback"),
+	},
+    ],
+});
-- 
2.39.2





^ permalink raw reply	[flat|nested] 9+ messages in thread

* [pve-devel] [PATCH v4 manager 4/5] ui: backup job: disable zstd thread count field when zstd isn't used
  2024-04-16 12:09 [pve-devel] [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default Fiona Ebner
                   ` (2 preceding siblings ...)
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 3/5] close #4513: ui: backup job: add tab for advanced options Fiona Ebner
@ 2024-04-16 12:09 ` Fiona Ebner
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 5/5] ui: backup job: move repeat-missed option to advanced tab Fiona Ebner
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Fiona Ebner @ 2024-04-16 12:09 UTC (permalink / raw)
  To: pve-devel

Also need to check for enable/disable of the compression selector,
because with PBS the value zstd is set, but the thread count setting
doesn't apply.

Suggested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---

Changes in v4:
    * adapt to rename backupPerformance -> backupAdvanced

 www/manager6/dc/Backup.js                   | 18 ++++++++++++++++++
 www/manager6/panel/BackupAdvancedOptions.js | 13 +++++++++++++
 2 files changed, 31 insertions(+)

diff --git a/www/manager6/dc/Backup.js b/www/manager6/dc/Backup.js
index aaa319f4..221fe17c 100644
--- a/www/manager6/dc/Backup.js
+++ b/www/manager6/dc/Backup.js
@@ -145,6 +145,18 @@ Ext.define('PVE.dc.BackupEdit', {
 	    }
 	},
 
+	compressionChange: function(f, value, oldValue) {
+	    this.getView().lookup('backupAdvanced').updateCompression(value, f.isDisabled());
+	},
+
+	compressionDisable: function(f) {
+	    this.getView().lookup('backupAdvanced').updateCompression(f.getValue(), true);
+	},
+
+	compressionEnable: function(f) {
+	    this.getView().lookup('backupAdvanced').updateCompression(f.getValue(), false);
+	},
+
 	init: function(view) {
 	    let me = this;
 	    if (view.isCreate) {
@@ -359,6 +371,11 @@ Ext.define('PVE.dc.BackupEdit', {
 					deleteEmpty: '{!isCreate}',
 				    },
 				    value: 'zstd',
+				    listeners: {
+					change: 'compressionChange',
+					disable: 'compressionDisable',
+					enable: 'compressionEnable',
+				    },
 				},
 				{
 				    xtype: 'pveBackupModeSelector',
@@ -473,6 +490,7 @@ Ext.define('PVE.dc.BackupEdit', {
 		},
 		{
 		    xtype: 'pveBackupAdvancedOptionsPanel',
+		    reference: 'backupAdvanced',
 		    title: gettext('Advanced'),
 		    cbind: {
 			isCreate: '{isCreate}',
diff --git a/www/manager6/panel/BackupAdvancedOptions.js b/www/manager6/panel/BackupAdvancedOptions.js
index 4d74ba3d..11a39352 100644
--- a/www/manager6/panel/BackupAdvancedOptions.js
+++ b/www/manager6/panel/BackupAdvancedOptions.js
@@ -12,6 +12,10 @@ Ext.define('PVE.panel.BackupAdvancedOptions', {
 	return {};
     },
 
+    controller: {
+	xclass: 'Ext.app.ViewController',
+    },
+
     onGetValues: function(formValues) {
 	if (this.needMask) { // isMasked() may not yet be true if not rendered once
 	    return {};
@@ -54,6 +58,14 @@ Ext.define('PVE.panel.BackupAdvancedOptions', {
 	return options;
     },
 
+    updateCompression: function(value, disabled) {
+	if (!disabled && value === 'zstd') {
+	    this.lookup('zstdThreadCount').setDisabled(false);
+	} else {
+	    this.lookup('zstdThreadCount').setDisabled(true);
+	}
+    },
+
     column1: [
 	{
 	    xtype: 'pveBandwidthField',
@@ -71,6 +83,7 @@ Ext.define('PVE.panel.BackupAdvancedOptions', {
 	{
 	    xtype: 'proxmoxintegerfield',
 	    name: 'zstd',
+	    reference: 'zstdThreadCount',
 	    fieldLabel: Ext.String.format(gettext('{0} Threads'), 'Zstd'),
 	    fieldStyle: 'text-align: right',
 	    emptyText: gettext('use fallback'),
-- 
2.39.2





^ permalink raw reply	[flat|nested] 9+ messages in thread

* [pve-devel] [PATCH v4 manager 5/5] ui: backup job: move repeat-missed option to advanced tab
  2024-04-16 12:09 [pve-devel] [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default Fiona Ebner
                   ` (3 preceding siblings ...)
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 4/5] ui: backup job: disable zstd thread count field when zstd isn't used Fiona Ebner
@ 2024-04-16 12:09 ` Fiona Ebner
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 docs 1/2] backup: update information about performance settings Fiona Ebner
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Fiona Ebner @ 2024-04-16 12:09 UTC (permalink / raw)
  To: pve-devel

Suggested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---

New in v4.

 www/manager6/dc/Backup.js                   | 12 ------------
 www/manager6/panel/BackupAdvancedOptions.js | 14 ++++++++++++++
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/www/manager6/dc/Backup.js b/www/manager6/dc/Backup.js
index 221fe17c..3ff2bff4 100644
--- a/www/manager6/dc/Backup.js
+++ b/www/manager6/dc/Backup.js
@@ -418,18 +418,6 @@ Ext.define('PVE.dc.BackupEdit', {
 				    },
 				},
 			    ],
-			    advancedColumn1: [
-				{
-				    xtype: 'proxmoxcheckbox',
-				    fieldLabel: gettext('Repeat missed'),
-				    name: 'repeat-missed',
-				    uncheckedValue: 0,
-				    defaultValue: 0,
-				    cbind: {
-					deleteDefaultValue: '{!isCreate}',
-				    },
-				},
-			    ],
 			    onGetValues: function(values) {
 				return this.up('window').getController().onGetValues(values);
 			    },
diff --git a/www/manager6/panel/BackupAdvancedOptions.js b/www/manager6/panel/BackupAdvancedOptions.js
index 11a39352..066b2c47 100644
--- a/www/manager6/panel/BackupAdvancedOptions.js
+++ b/www/manager6/panel/BackupAdvancedOptions.js
@@ -122,6 +122,16 @@ Ext.define('PVE.panel.BackupAdvancedOptions', {
 		deleteEmpty: '{!isCreate}',
 	    },
 	},
+	{
+	    xtype: 'proxmoxcheckbox',
+	    fieldLabel: gettext('Repeat missed'),
+	    name: 'repeat-missed',
+	    uncheckedValue: 0,
+	    defaultValue: 0,
+	    cbind: {
+		deleteDefaultValue: '{!isCreate}',
+	    },
+	},
     ],
 
     column2: [
@@ -142,6 +152,10 @@ Ext.define('PVE.panel.BackupAdvancedOptions', {
 	    value: 'TODO',
 	    hidden: true, // see definition of pbs-entries-max field
 	},
+	{
+	    xtype: 'displayfield',
+	    value: gettext('Run missed jobs as soon as possible'),
+	},
     ],
 
     columnB: [
-- 
2.39.2





^ permalink raw reply	[flat|nested] 9+ messages in thread

* [pve-devel] [PATCH v4 docs 1/2] backup: update information about performance settings
  2024-04-16 12:09 [pve-devel] [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default Fiona Ebner
                   ` (4 preceding siblings ...)
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 5/5] ui: backup job: move repeat-missed option to advanced tab Fiona Ebner
@ 2024-04-16 12:09 ` Fiona Ebner
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 docs 2/2] backup: clarify where repeat-missed option can be found now Fiona Ebner
  2024-04-17 14:06 ` [pve-devel] applied-series: [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default Thomas Lamprecht
  7 siblings, 0 replies; 9+ messages in thread
From: Fiona Ebner @ 2024-04-16 12:09 UTC (permalink / raw)
  To: pve-devel

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---

Changes in v4:
    * Clarify that options can be found in the advanced tab

 vzdump.adoc | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/vzdump.adoc b/vzdump.adoc
index b5bbac7..fa904cc 100644
--- a/vzdump.adoc
+++ b/vzdump.adoc
@@ -214,10 +214,11 @@ the behaviour for catching up. By enabling the `Repeat missed` option
 (`repeat-missed` in the config), you can tell the scheduler that it should run
 missed jobs as soon as possible.
 
-There are a few settings for tuning backup performance not exposed in the UI.
-The most notable is `bwlimit` for limiting IO bandwidth. The amount of threads
-used for the compressor can be controlled with the `pigz` (replacing `gzip`),
-respectively, `zstd` setting. Furthermore, there are `ionice` and, as part of
+There are a few settings for tuning backup performance (some of which are
+exposed in the 'Advanced' tab in the UI). The most notable is `bwlimit` for
+limiting IO bandwidth. The amount of threads used for the compressor can be
+controlled with the `pigz` (replacing `gzip`), respectively, `zstd` setting.
+Furthermore, there are `ionice` (when the BFQ scheduler is used) and, as part of
 the `performance` setting, `max-workers` (affects VM backups only) and
 `pbs-entries-max` (affects container backups only). See the
 xref:vzdump_configuration[configuration options] for details.
-- 
2.39.2





^ permalink raw reply	[flat|nested] 9+ messages in thread

* [pve-devel] [PATCH v4 docs 2/2] backup: clarify where repeat-missed option can be found now
  2024-04-16 12:09 [pve-devel] [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default Fiona Ebner
                   ` (5 preceding siblings ...)
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 docs 1/2] backup: update information about performance settings Fiona Ebner
@ 2024-04-16 12:09 ` Fiona Ebner
  2024-04-17 14:06 ` [pve-devel] applied-series: [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default Thomas Lamprecht
  7 siblings, 0 replies; 9+ messages in thread
From: Fiona Ebner @ 2024-04-16 12:09 UTC (permalink / raw)
  To: pve-devel

It was moved to the advanced tab by pve-manager commit
ui: backup job: move repeat-missed option to advanced tab

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---

New in v4.

 vzdump.adoc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/vzdump.adoc b/vzdump.adoc
index fa904cc..8c3ebef 100644
--- a/vzdump.adoc
+++ b/vzdump.adoc
@@ -210,9 +210,9 @@ together with the backup.
 
 Since scheduled backups miss their execution when the host was offline or the
 pvescheduler was disabled during the scheduled time, it is possible to configure
-the behaviour for catching up. By enabling the `Repeat missed` option
-(`repeat-missed` in the config), you can tell the scheduler that it should run
-missed jobs as soon as possible.
+the behaviour for catching up. By enabling the `Repeat missed` option (in the
+'Advanced' tab in the UI, `repeat-missed` in the config), you can tell the
+scheduler that it should run missed jobs as soon as possible.
 
 There are a few settings for tuning backup performance (some of which are
 exposed in the 'Advanced' tab in the UI). The most notable is `bwlimit` for
-- 
2.39.2





^ permalink raw reply	[flat|nested] 9+ messages in thread

* [pve-devel] applied-series: [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default
  2024-04-16 12:09 [pve-devel] [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default Fiona Ebner
                   ` (6 preceding siblings ...)
  2024-04-16 12:09 ` [pve-devel] [PATCH v4 docs 2/2] backup: clarify where repeat-missed option can be found now Fiona Ebner
@ 2024-04-17 14:06 ` Thomas Lamprecht
  7 siblings, 0 replies; 9+ messages in thread
From: Thomas Lamprecht @ 2024-04-17 14:06 UTC (permalink / raw)
  To: Proxmox VE development discussion, Fiona Ebner

Am 16/04/2024 um 14:09 schrieb Fiona Ebner:
> Changes in v4 (Thanks to Thomas for feedback!):
>     * rename tab from 'Performance' to 'Advanced'
>     * move repeat-missed setting there too
>     * update docs to clarify that those settings can be found in the
>       advanced tab
> 
> Changes in v3 (Thanks to Thomas for feedback!):
>     * new patch to actually honor default values for performance
>       format/schema
>     * new patch to switch to per-property fallback for performance
>       properties
>     * also handle new (came in after v2) pbs-entries-max in UI (make
>       sure to preserve value, but don't expose it)
>     * drop already applied patch
> 
> Improve fallback for the 'performance' sub-properties by using a
> per-property fallback and honor schema defaults.
> 
> Expose commonly used advanced properties in the backup job UI under a
> new tab.
> 
> 
> manager:
> 
> Fiona Ebner (5):
>   vzdump: actually honor schema defaults for performance
>   vzdump: use per-property fallback for performance settings
>   close #4513: ui: backup job: add tab for advanced options
>   ui: backup job: disable zstd thread count field when zstd isn't used
>   ui: backup job: move repeat-missed option to advanced tab
> 
>  PVE/VZDump.pm                               |  33 +++-
>  www/manager6/Makefile                       |   1 +
>  www/manager6/dc/Backup.js                   |  42 +++--
>  www/manager6/panel/BackupAdvancedOptions.js | 169 ++++++++++++++++++++
>  4 files changed, 228 insertions(+), 17 deletions(-)
>  create mode 100644 www/manager6/panel/BackupAdvancedOptions.js
> 
> 
> docs:
> 
> Fiona Ebner (2):
>   backup: update information about performance settings
>   backup: clarify where repeat-missed option can be found now
> 
>  vzdump.adoc | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
> 


applied series, with some slight rework of the empty texts and hints done
as follow-up, thanks!


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-04-17 14:06 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-16 12:09 [pve-devel] [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default Fiona Ebner
2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 1/5] vzdump: actually honor schema defaults for performance Fiona Ebner
2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 2/5] vzdump: use per-property fallback for performance settings Fiona Ebner
2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 3/5] close #4513: ui: backup job: add tab for advanced options Fiona Ebner
2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 4/5] ui: backup job: disable zstd thread count field when zstd isn't used Fiona Ebner
2024-04-16 12:09 ` [pve-devel] [PATCH v4 manager 5/5] ui: backup job: move repeat-missed option to advanced tab Fiona Ebner
2024-04-16 12:09 ` [pve-devel] [PATCH v4 docs 1/2] backup: update information about performance settings Fiona Ebner
2024-04-16 12:09 ` [pve-devel] [PATCH v4 docs 2/2] backup: clarify where repeat-missed option can be found now Fiona Ebner
2024-04-17 14:06 ` [pve-devel] applied-series: [PATCH-SERIES v4 manager/docs] close #4513: add advanced tab for backup jobs and improve performance fallback/default Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal