# Build from source
cd proxmox-optimizer
go build -ldflags="-s -w" -o proxmox-optimizer
# Install system-wide
sudo cp proxmox-optimizer /usr/local/bin/
sudo chmod +x /usr/local/bin/proxmox-optimizer# Show system information
sudo proxmox-optimizer -info
# Generate sample configuration (conservative)
proxmox-optimizer -generate-config
# Generate aggressive configuration
proxmox-optimizer -generate-config -aggressive
# Dry-run to see what would be changed
sudo proxmox-optimizer -dry-run
# Apply all optimizations (creates automatic backup)
sudo proxmox-optimizer
# Apply specific optimizations
sudo proxmox-optimizer -optimize memory
sudo proxmox-optimizer -optimize disk
sudo proxmox-optimizer -optimize network
sudo proxmox-optimizer -optimize proxmox
# Apply aggressive optimizations
sudo proxmox-optimizer -aggressive
# Use custom configuration
sudo proxmox-optimizer -config optimizer-config.json
# Restore from backup
sudo proxmox-optimizer -restore /var/backups/proxmox-optimizer/backup-YYYYMMDD-HHMMSS.tar.gz- Check system info:
sudo proxmox-optimizer -info - Test with dry-run:
sudo proxmox-optimizer -dry-run - Apply optimizations:
sudo proxmox-optimizer - Verify changes: Check
/etc/sysctl.d/99-proxmox-optimizer.conf - Reboot (optional but recommended for full effect)
/etc/sysctl.d/99-proxmox-optimizer.conf- Kernel parameters/etc/udev/rules.d/60-proxmox-optimizer-disk.rules- Disk I/O settings
qemu-guest-agent- Installed and enabledrng-tools- Installed and enabled (if hardware RNG available)systemd-timesyncd- Enabled for time sync
- Automatic backups stored in
/var/backups/proxmox-optimizer/ - Named:
backup-YYYYMMDD-HHMMSS.tar.gz
- Automatic backup before changes
- Dry-run mode to preview changes
- Full rollback capability
- Persistent settings across reboots
If you experience issues:
# List available backups
ls -lh /var/backups/proxmox-optimizer/
# Restore from latest backup
LATEST=$(ls -t /var/backups/proxmox-optimizer/backup-*.tar.gz | head -1)
sudo proxmox-optimizer -restore "$LATEST"
# Reboot
sudo reboot- Balanced settings for general use
- vm.swappiness = 10
- Standard TCP buffer sizes
- Safe I/O schedulers
- Maximum performance settings
- vm.swappiness = 1
- BBR congestion control
- Performance CPU governor
- Larger buffer sizes
- Cache dropping
# Check sysctl settings
sysctl vm.swappiness
sysctl net.ipv4.tcp_congestion_control
cat /etc/sysctl.d/99-proxmox-optimizer.conf
# Check disk settings
cat /sys/block/sda/queue/scheduler
cat /sys/block/sda/queue/read_ahead_kb
# Check services
systemctl status qemu-guest-agent
systemctl status rng-tools
# Check udev rules
cat /etc/udev/rules.d/60-proxmox-optimizer-disk.rulesMake sure you run with sudo:
sudo proxmox-optimizer -infoBBR requires kernel 4.9+ and the tcp_bbr module:
# Check if BBR is available
modprobe tcp_bbr
lsmod | grep bbr
# If not available, tool will fallback to cubicReload system settings:
sudo sysctl --system
sudo udevadm control --reload-rules
sudo udevadm triggerTest before and after:
# Network throughput (requires iperf3 server)
iperf3 -c server-ip
# Disk I/O (requires fio)
sudo fio --name=test --ioengine=libaio --iodepth=16 --rw=randrw --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 --group_reporting
# System benchmark
sysbench cpu run
sysbench memory runFor issues or questions, check:
- README.md for detailed documentation
/var/log/syslogfor system messages- Run with
-dry-runto see what would be changed