Add example of Proxmox host analysis output
This commit is contained in:
261
PROXMOX_ANALYSIS_EXAMPLE.md
Normal file
261
PROXMOX_ANALYSIS_EXAMPLE.md
Normal file
@@ -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! 📊
|
||||||
|
|
||||||
Reference in New Issue
Block a user