{ "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.", "Moves the original /bin/gzip aside to /bin/gzip.original and replaces /bin/gzip with the wrapper. From now on, anything that calls gzip — logrotate, tar czf, scripts, vzdump — uses pigz transparently." ], "replacesTitle": "This replaces a system binary", "replacesBody": "Replacing /bin/gzip with a wrapper 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 original binary is preserved as /bin/gzip.original so you can always swap it back.", "revertTitle": "Not reversible from the Uninstall menu", "revertBody": "This optimization is applied by Customizable, but does not currently have a matching entry in the Uninstall Optimizations menu. To revert it by hand, restore the original gzip and clear the wrapper:", "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." } ] } }