From 1cfbf9e7c805ea2b7c608caf54cedabb92d99db3 Mon Sep 17 00:00:00 2001 From: mindesbunister Date: Mon, 6 Oct 2025 11:12:33 +0200 Subject: [PATCH] Add example of Proxmox host analysis output --- PROXMOX_ANALYSIS_EXAMPLE.md | 261 ++++++++++++++++++++++++++++++++++++ 1 file changed, 261 insertions(+) create mode 100644 PROXMOX_ANALYSIS_EXAMPLE.md diff --git a/PROXMOX_ANALYSIS_EXAMPLE.md b/PROXMOX_ANALYSIS_EXAMPLE.md new file mode 100644 index 0000000..0fad698 --- /dev/null +++ b/PROXMOX_ANALYSIS_EXAMPLE.md @@ -0,0 +1,261 @@ +# Proxmox Host Analysis Example + +## What You'll See When Running on Proxmox + +When you run `sudo ./one-button-optimizer.sh` on a Proxmox host, you'll now see a **comprehensive analysis** before making any changes: + +``` +⚠️ Proxmox VE host detected! + +🔍 Proxmox Host Analysis +======================== + +📊 System Information: + 💾 RAM: 64GB (Used: 18GB, Available: 42GB) + 🖥️ CPU: 16 cores + 📦 Proxmox: pve-manager/8.0.4/8d2b43c4 (running kernel: 6.2.16-3-pve) + +🖥️ Workload: + 🖼️ VMs: 5 total (3 running) + 📦 Containers: 2 total (2 running) + 📊 Total VM memory allocated: 48GB + 📈 Memory overcommit: 75.0% + +💾 Storage: + • local (dir): 145GB/450GB used + • local-lvm (lvmthin): 892GB/1800GB used + • backup (dir): 234GB/2000GB used + +⚙️ Current Kernel Parameters: + 📊 Memory: + vm.swappiness: 60 (Proxmox recommended: 10) + vm.dirty_ratio: 20 (Proxmox recommended: 10) + vm.dirty_background_ratio: 10 (Proxmox recommended: 5) + vm.vfs_cache_pressure: 100 (Proxmox recommended: 50) + + 📡 Network: + net.core.default_qdisc: pfifo_fast (Proxmox recommended: fq) + net.ipv4.tcp_congestion_control: cubic (Proxmox recommended: bbr) + +🖥️ CPU Governor: ondemand (Recommended: performance) + +🗄️ ZFS Configuration: + 📊 Current ARC max: 32GB + 💡 Recommended: 16GB (25% of RAM, leaves more for VMs) + +🔍 Existing Optimizations: + ❌ No custom sysctl configuration + ✅ No tmpfs cache mounts (good for Proxmox) + ✅ No zram (good for Proxmox) + +📋 Assessment: + ⚠️ Kernel parameters not optimized for hypervisor workload + ⚠️ CPU governor not set to 'performance' + ⚠️ ZFS ARC could be limited to give VMs more RAM + +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +This tool has TWO modes: + + 1️⃣ Proxmox Host Mode (Hypervisor Optimization) + • Optimized kernel params for VM workloads + • Minimal RAM allocation (2GB APT cache only) + • CPU performance governor + • ZFS ARC limiting (if applicable) + • No desktop app configuration + + 2️⃣ Desktop Mode (NOT recommended for host) + • Heavy RAM usage (zram + tmpfs = 40-50%) + • Desktop-focused optimizations + • Will reduce memory available for VMs + + 3️⃣ Abort (Recommended: Run inside your desktop VMs) + +Choose mode (1=Proxmox/2=Desktop/3=Abort) [1]: +``` + +--- + +## What Each Section Tells You + +### 📊 System Information +- **RAM Usage:** Shows how much RAM is used vs available +- **CPU Cores:** Total cores available for VMs +- **Proxmox Version:** Your current PVE version and kernel + +### 🖥️ Workload +- **VM/CT Count:** Total and running instances +- **Memory Allocation:** Total RAM allocated to all VMs +- **Overcommit Ratio:** % of RAM you've allocated to VMs + - <100%: Conservative (VMs won't use all their allocation) + - 100-150%: Normal (ballooning will handle it) + - >150%: Aggressive (monitor for memory pressure) + +### 💾 Storage +- Shows all storage backends +- Current usage per storage +- Helps identify if you need more space + +### ⚙️ Kernel Parameters +Compares **current** vs **recommended** for Proxmox: + +| Parameter | Default | Current | Proxmox Optimal | +|-----------|---------|---------|-----------------| +| vm.swappiness | 60 | ? | 10 | +| vm.dirty_ratio | 20 | ? | 10 | +| vm.dirty_background_ratio | 10 | ? | 5 | +| vm.vfs_cache_pressure | 100 | ? | 50 | +| qdisc | pfifo_fast | ? | fq | +| tcp_congestion | cubic | ? | bbr | + +### 🖥️ CPU Governor +- **ondemand/powersave:** CPU scales down when idle (saves power, adds latency) +- **performance:** CPU always at max speed (better for VMs, ~2-5W more power) + +### 🗄️ ZFS Configuration +- Shows current ARC (cache) size +- Recommends 25% of RAM (leaves 75% for VMs) +- Example: 64GB RAM → 16GB ARC, 48GB for VMs + +### 🔍 Existing Optimizations +Detects if you've already optimized: +- ✅ **Good:** No zram, no excessive tmpfs +- ⚠️ **Warning:** Desktop optimizations found (uses VM RAM) + +### 📋 Assessment +Quick summary of what needs attention: +- ✅ Already optimal +- ⚠️ Needs optimization + +--- + +## What Gets Optimized + +When you choose **Mode 1 (Proxmox Host)**: + +### 1. Kernel Parameters +```bash +# Before +vm.swappiness = 60 +vm.dirty_ratio = 20 +net.core.default_qdisc = pfifo_fast +net.ipv4.tcp_congestion_control = cubic + +# After +vm.swappiness = 10 ✅ Balanced for VMs +vm.dirty_ratio = 10 ✅ Handles VM writes +net.core.default_qdisc = fq ✅ Fair queue +net.ipv4.tcp_congestion_control = bbr ✅ Better throughput +``` + +### 2. CPU Governor +```bash +# Before +ondemand (scales with load) + +# After +performance (always full speed) +``` + +### 3. ZFS ARC (if ZFS present) +```bash +# Before +32GB (50% of RAM) + +# After +16GB (25% of RAM) +# Frees 16GB for VMs! +``` + +### 4. Optional: APT Cache (2GB tmpfs) +```bash +# Minimal RAM impact +# Faster package updates +``` + +--- + +## Example: Before vs After + +### Before Optimization: +``` +RAM: 64GB total + ├─ Used by host: 18GB + ├─ ZFS ARC: 32GB (wasted for hypervisor) + └─ Available for VMs: 14GB (only 22%!) + +CPU: Scaling down when idle (latency spikes) +Network: Default cubic (suboptimal for VM traffic) +Kernel: Desktop-optimized values +``` + +### After Optimization: +``` +RAM: 64GB total + ├─ Used by host: 10GB (optimized) + ├─ ZFS ARC: 16GB (limited, still effective) + └─ Available for VMs: 38GB (59%!) + +CPU: Always at full speed (predictable performance) +Network: BBR congestion control (10-30% faster) +Kernel: Hypervisor-optimized values +``` + +**Result:** ~24GB more RAM for VMs! 🚀 + +--- + +## When Analysis Shows "Already Optimized" + +If you see: +``` +📋 Assessment: + ✅ System is already well-optimized for Proxmox! +``` + +The script will still run but make minimal changes. Safe to run anytime! + +--- + +## Use Cases + +### Fresh Proxmox Install +- Shows default values (usually suboptimal) +- Recommends all optimizations +- Big performance gain expected + +### Previously Optimized +- Shows current settings +- Confirms they're good +- Maybe updates to newer recommendations + +### Mixed/Desktop Mode +- Detects if you ran desktop optimizations before +- Warns about zram/tmpfs using VM RAM +- Can clean up or reconfigure + +--- + +## Safety + +The analysis is **read-only** - it just shows information. No changes until you: +1. Choose Mode 1 (Proxmox) +2. Confirm each optimization + +You can abort at any time! + +--- + +## Summary + +The new Proxmox analysis gives you: + +✅ **Complete system overview** before making changes +✅ **Current vs recommended** parameter comparison +✅ **VM workload context** (memory allocation, count) +✅ **Storage status** at a glance +✅ **Existing optimization detection** +✅ **Clear assessment** of what needs work + +**Result:** You know exactly what will be optimized and why! 📊 +