{
"meta": {
"title": "Post-Install: Performance | ProxMenux Documentation",
"description": "Performance options in the ProxMenux Customizable post-install script. Replaces single-threaded gzip with pigz (parallel gzip) for faster backups and compression on multi-core hosts."
},
"header": {
"title": "Post-Install: Performance",
"description": "Performance options inside the Customizable post-install script. Currently this category contains a single optimization: replacing gzip with pigz so backups and compression use every CPU core instead of one.",
"section": "Settings post-install Proxmox"
},
"intro": {
"title": "What this category covers",
"body": "The only performance option here rewires the system's gzip to a parallel implementation. Other performance-related tweaks (memory tuning, I/O scheduling, ZFS ARC sizing, kernel limits) live under their own categories (System, Storage) because they affect different subsystems."
},
"pigz": {
"heading": "Use pigz for faster gzip compression",
"intro": "Standard gzip compresses data using a single CPU core. On modern Proxmox hosts with 8, 16 or 32 cores, that is a huge bottleneck during vzdump VM/CT backups, log rotation, and anything else that pipes through gzip. pigz is a drop-in parallel replacement: same gzip-compatible output, but it spreads the work across every core.",
"doesTitle": "What ProxMenux does",
"doesIntro": "Four steps, all idempotent:",
"doesItems": [
"Sets pigz: 1 in /etc/vzdump.conf so Proxmox's backup tool uses pigz natively.",
"Installs the pigz apt package if not already present.",
"Writes a wrapper script at /bin/pigzwrapper that forwards every argument to /usr/bin/pigz.",
"Registers a dpkg diversion for the system's gzip binary (/usr/bin/gzip on Proxmox VE 9, /bin/gzip on Proxmox VE 8): the real binary is kept beside it as gzip.distrib and the wrapper takes its place. From now on, anything that calls gzip — logrotate, tar czf, scripts, vzdump — uses pigz transparently.",
"Checks that the file kept as gzip.distrib is a working gzip before the wrapper is put in place, and reinstalls the gzip package first when it is not. A host that still has the earlier /bin/gzip.original swap is moved to the diversion when the option is applied again."
],
"replacesTitle": "This replaces a system binary",
"replacesBody": "Putting a wrapper in the place of gzip is unusual. It is safe (the wrapper produces gzip-compatible output), but worth knowing: scripts that hardcode paths, run inside restrictive chroots, or verify binary hashes may behave differently. The real binary is preserved as gzip.distrib, and because the replacement is a dpkg diversion, an update of the gzip package — or the upgrade from Proxmox VE 8 to 9 — updates that file and leaves the wrapper in place.",
"revertTitle": "Reversible from the Uninstall menu",
"revertBody": "This optimization is tracked. Uninstall Optimizations copies the real binary from gzip.distrib back over the wrapper, removes the diversion and the pigzwrapper, comments out the pigz line in /etc/vzdump.conf, and runs apt purge pigz once gzip is verified to work. Manual equivalent on Proxmox VE 9:",
"verifyTitle": "Verification",
"verifyBody": "After applying, gzip --version should mention pigz. A quick benchmark also shows the speed difference on a multi-core host:",
"whenTitle": "When this matters most",
"whenBody": "The impact scales with how many cores the host has and how often you run backups. On a 2-core home-lab box with one daily vzdump, the benefit is marginal. On a 16-core production host backing up a dozen VMs every night, pigz can cut the backup window to a fraction of what single-threaded gzip takes."
},
"related": {
"heading": "Related",
"items": [
{
"label": "Backup and Restore commands",
"href": "/docs/help-info/backup-commands",
"tailRich": " — vzdump CLI reference, including --pigz threads option."
},
{
"label": "Storage",
"href": "/docs/post-install/storage",
"tail": " — vzdump speed limits and ZFS ARC tuning."
},
{
"label": "System",
"href": "/docs/post-install/system",
"tail": " — file-descriptor and memory tuning."
},
{
"label": "Customizable Post-Install",
"href": "/docs/post-install/customizable",
"tail": " — back to the parent menu."
}
]
}
}