[PR #4509] [MERGED] feat(backup): add parallel backup creation using pigz #4362

Closed
opened 2026-02-27 04:54:52 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/GameServerManagers/LinuxGSM/pull/4509
Author: @MicLieg
Created: 2/25/2024
Status: Merged
Merged: 2/26/2024
Merged by: @dgibbs64

Base: developHead: feature/parallel-backup-creation


📝 Commits (1)

  • 2c65c55 feat(backup): add parallel backup creation using pigz

📊 Changes

22 files changed (+22 additions, -22 deletions)

View changed files

📝 lgsm/data/almalinux-8.csv (+1 -1)
📝 lgsm/data/almalinux-9.csv (+1 -1)
📝 lgsm/data/centos-7.csv (+1 -1)
📝 lgsm/data/centos-8.csv (+1 -1)
📝 lgsm/data/centos-9.csv (+1 -1)
📝 lgsm/data/debian-10.csv (+1 -1)
📝 lgsm/data/debian-11.csv (+1 -1)
📝 lgsm/data/debian-12.csv (+1 -1)
📝 lgsm/data/debian-9.csv (+1 -1)
📝 lgsm/data/rhel-7.csv (+1 -1)
📝 lgsm/data/rhel-8.csv (+1 -1)
📝 lgsm/data/rhel-9.csv (+1 -1)
📝 lgsm/data/rocky-8.csv (+1 -1)
📝 lgsm/data/rocky-9.csv (+1 -1)
📝 lgsm/data/ubuntu-16.04.csv (+1 -1)
📝 lgsm/data/ubuntu-18.04.csv (+1 -1)
📝 lgsm/data/ubuntu-20.04.csv (+1 -1)
📝 lgsm/data/ubuntu-22.04.csv (+1 -1)
📝 lgsm/data/ubuntu-23.04.csv (+1 -1)
📝 lgsm/data/ubuntu-23.10.csv (+1 -1)

...and 2 more files

📄 Description

Description

This pull request changes the creation of a backup to use pigz to reduce compression times by parallelizing compression. To do that pigz was added to the dependencies.

Backup times on i7-13700K bare metal server

Default Backup

Small Minecraft Server (117 MB) took ~ 5 seconds

user@hostmachine:~/minecraft$ time ./mcserver backup
[ INFO ] Backing up mcserver: Starting backup: No previous backups found
[  OK  ] Backing up mcserver: Completed: mcserver-2024-02-25-163835.tar.gz, total size 107M
core_exit.sh exiting with code: 4

real    0m5,122s

Big Minecraft Server (18 GB) took ~ 285 seconds (4 minutes 45 seconds)

user@hostmachine:~/minecraft$ time ./mcserver backup
[ INFO ] Backing up mcserver: Starting backup: No previous backups found
[  OK  ] Backing up mcserver: Completed: mcserver-2024-02-25-165601.tar.gz, total size 15G
core_exit.sh exiting with code: 4

real    4m44,821s

Parallel Backup

Small Minecraft Server (117 MB) took ~ 3 seconds

user@hostmachine:~/minecraft$ time ./mcserver backup
[ INFO ] Backing up mcserver: Starting backup: No previous backups found
[  OK  ] Backing up mcserver: Completed: mcserver-2024-02-25-164608.tar.gz, total size 107M
core_exit.sh exiting with code: 4

real    0m3,197s

Big Minecraft Server (18 GB) took ~ 23 seconds

user@hostmachine:~/minecraft$ time ./mcserver backup
[ INFO ] Backing up mcserver: Starting backup: No previous backups found
[  OK  ] Backing up mcserver: Completed: mcserver-2024-02-25-170138.tar.gz, total size 15G
core_exit.sh exiting with code: 4

real    0m23,154s

Fixes #3422

Type of change

  • Bug fix (a change which fixes an issue).
  • New feature (a change which adds functionality).
  • New Server (new server added).
  • Refactor (restructures existing code).
  • Comment update (typo, spelling, explanation, examples, etc).

Checklist

PR will not be merged until all steps are complete.

  • This pull request links to an issue.
  • This pull request uses the develop branch as its base.
  • This pull request subject follows the Conventional Commits standard.
  • This code follows the style guidelines of this project.
  • I have performed a self-review of my code.
  • I have checked that this code is commented where required.
  • I have provided a detailed enough description of this PR.
  • I have checked if documentation needs updating.

Documentation

If documentation does need updating either update it by creating a PR (preferred) or request a documentation update.

Thank you for your Pull Request!


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/GameServerManagers/LinuxGSM/pull/4509 **Author:** [@MicLieg](https://github.com/MicLieg) **Created:** 2/25/2024 **Status:** ✅ Merged **Merged:** 2/26/2024 **Merged by:** [@dgibbs64](https://github.com/dgibbs64) **Base:** `develop` ← **Head:** `feature/parallel-backup-creation` --- ### 📝 Commits (1) - [`2c65c55`](https://github.com/GameServerManagers/LinuxGSM/commit/2c65c557bbf06a1742648a369c3c0c2d2093a170) feat(backup): add parallel backup creation using pigz ### 📊 Changes **22 files changed** (+22 additions, -22 deletions) <details> <summary>View changed files</summary> 📝 `lgsm/data/almalinux-8.csv` (+1 -1) 📝 `lgsm/data/almalinux-9.csv` (+1 -1) 📝 `lgsm/data/centos-7.csv` (+1 -1) 📝 `lgsm/data/centos-8.csv` (+1 -1) 📝 `lgsm/data/centos-9.csv` (+1 -1) 📝 `lgsm/data/debian-10.csv` (+1 -1) 📝 `lgsm/data/debian-11.csv` (+1 -1) 📝 `lgsm/data/debian-12.csv` (+1 -1) 📝 `lgsm/data/debian-9.csv` (+1 -1) 📝 `lgsm/data/rhel-7.csv` (+1 -1) 📝 `lgsm/data/rhel-8.csv` (+1 -1) 📝 `lgsm/data/rhel-9.csv` (+1 -1) 📝 `lgsm/data/rocky-8.csv` (+1 -1) 📝 `lgsm/data/rocky-9.csv` (+1 -1) 📝 `lgsm/data/ubuntu-16.04.csv` (+1 -1) 📝 `lgsm/data/ubuntu-18.04.csv` (+1 -1) 📝 `lgsm/data/ubuntu-20.04.csv` (+1 -1) 📝 `lgsm/data/ubuntu-22.04.csv` (+1 -1) 📝 `lgsm/data/ubuntu-23.04.csv` (+1 -1) 📝 `lgsm/data/ubuntu-23.10.csv` (+1 -1) _...and 2 more files_ </details> ### 📄 Description # Description This pull request changes the creation of a backup to use `pigz` to reduce compression times by parallelizing compression. To do that `pigz` was added to the dependencies. ## Backup times on i7-13700K bare metal server ### Default Backup #### Small Minecraft Server (117 MB) took ~ 5 seconds ```bash user@hostmachine:~/minecraft$ time ./mcserver backup [ INFO ] Backing up mcserver: Starting backup: No previous backups found [ OK ] Backing up mcserver: Completed: mcserver-2024-02-25-163835.tar.gz, total size 107M core_exit.sh exiting with code: 4 real 0m5,122s ``` #### Big Minecraft Server (18 GB) took ~ 285 seconds (4 minutes 45 seconds) ```bash user@hostmachine:~/minecraft$ time ./mcserver backup [ INFO ] Backing up mcserver: Starting backup: No previous backups found [ OK ] Backing up mcserver: Completed: mcserver-2024-02-25-165601.tar.gz, total size 15G core_exit.sh exiting with code: 4 real 4m44,821s ``` ### Parallel Backup #### Small Minecraft Server (117 MB) took ~ 3 seconds ```bash user@hostmachine:~/minecraft$ time ./mcserver backup [ INFO ] Backing up mcserver: Starting backup: No previous backups found [ OK ] Backing up mcserver: Completed: mcserver-2024-02-25-164608.tar.gz, total size 107M core_exit.sh exiting with code: 4 real 0m3,197s ``` #### Big Minecraft Server (18 GB) took ~ 23 seconds ```bash user@hostmachine:~/minecraft$ time ./mcserver backup [ INFO ] Backing up mcserver: Starting backup: No previous backups found [ OK ] Backing up mcserver: Completed: mcserver-2024-02-25-170138.tar.gz, total size 15G core_exit.sh exiting with code: 4 real 0m23,154s ``` Fixes #3422 ## Type of change - [x] Bug fix (a change which fixes an issue). - [x] New feature (a change which adds functionality). - [ ] New Server (new server added). - [ ] Refactor (restructures existing code). - [ ] Comment update (typo, spelling, explanation, examples, etc). ## Checklist PR will not be merged until all steps are complete. - [x] This pull request links to an issue. - [x] This pull request uses the `develop` branch as its base. - [x] This pull request subject follows the Conventional Commits standard. - [x] This code follows the style guidelines of this project. - [x] I have performed a self-review of my code. - [x] I have checked that this code is commented where required. - [x] I have provided a detailed enough description of this PR. - [x] I have checked if documentation needs updating. ## Documentation If documentation does need updating either update it by creating a PR (preferred) or request a documentation update. - User docs: https://github.com/GameServerManagers/LinuxGSM-Docs - Dev docs: https://github.com/GameServerManagers/LinuxGSM-Dev-Docs **Thank you for your Pull Request!** --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 04:54:52 +03:00
Sign in to join this conversation.
No labels
Atomic
Epic
cannot reproduce
command: backup
command: console
command: debug
command: details
command: fast-dl
command: install
command: mods
command: monitor
command: post-details
command: restart
command: send
command: start
command: stop
command: update
command: update-lgsm
command: validate
command: wipe
distro: AlmaLinux
distro: Arch Linux
distro: CentOS
distro: Debian
distro: Fedora
distro: RedHat
distro: Rocky Linux
distro: Ubuntu
distro: openSUSE
engine: goldsrc
engine: source
game: 7 Days to Die
game: ARMA 3
game: Ark: Survival Evolved
game: Assetto Corsa
game: Avorion
game: BATTALION: Legacy
game: Barotrauma
game: Battalion 1944
game: Battlefield 1942
game: Black Mesa: Deathmatch
game: Blade Symphony
game: Call of Duty 2
game: Call of Duty 4
game: Call of Duty: United Offensive
game: Counter-Strike 1.6
game: Counter-Strike 2
game: Counter-Strike: Global Offensive
game: Counter-Strike: Source
game: Day of Infamy
game: Dayz
game: Death Match Classic
game: Don't Starve Together
game: ET: Legacy
game: Eco
game: Factorio
game: Factorio
game: Garry's Mod
game: Half-Life
game: Hurtword
game: Insurgecy
game: Insurgecy
game: Insurgency: Sandstorm
game: Just Cause 3
game: Killing Floor
game: Killing Floor 2
game: Left 4 Dead 2
game: Minecraft
game: Minecraft Bedrock
game: Mordhau
game: Multi Theft Auto
game: Mumble
game: Natural Selection 2
game: No More Room in Hell
game: Pavlov VR
game: Post Scriptum
game: Project Zomboid
game: Quake 3
game: QuakeWorld
game: Red Orchestra: Ostfront 41-45
game: Return to Castle Wolfenstein
game: Rising World
game: Rust
game: San Andreas Multiplayer
game: Satisfactory
game: Soldat
game: Soldier of Fortune 2
game: Squad
game: Squad 44
game: Starbound
game: Stationeers
game: Sven Co-op
game: Team Fortress 2
game: Teamspeak 3
game: Teeworlds
game: Terraria
game: The Front
game: Unreal Tournament 2004
game: Unreal Tournament 3
game: Unreal Tournament 99
game: Unturned
game: Valheim
game: Wurm Unlimited
game: Zombie Master Reborn
game: label missing
good first issue
help wanted
info: alerts
info: dependency
info: docker
info: docs
info: email
info: query
info: steamcmd
info: systemd
info: tmux
info: website
info: website
needs more info
outcome: duplicate
outcome: issue resolved
outcome: issue resolved
outcome: issue unresolved
outcome: pr accepted
outcome: pr rejected
outcome: unconfirmed
outcome: wontfix
outcome: wrong forum
potential-duplicate
priority
pull-request
type: bug
type: feature
type: feature
type: feature request
type: game server request
type: refactor
waiting response
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/LinuxGSM#4362
No description provided.