Bug #395
closedOAM: VM disk cache optimization (writethrough -> writeback) + tuned deployment
100%
Description
Two-part infrastructure optimization across all Proxmox hosts and VMs.
Part 1: VM disk cache changes¶
VMs still using cache=writethrough on NFS-backed spinning disk should be changed to cache=writeback for consistency and performance. Writethrough forces every guest fsync to physical spinning disk (slow). Writeback lets host RAM absorb fsyncs (fast, safe for this R&D cluster).
VMs to change (requires stop/set/start):
- VMID 108 tsys-ucs-01 (tsys1) — writethrough -> writeback
- VMID 600 tsys-awx (tsys6) — writethrough -> writeback
- VMID 703 rr-middleware-01 (tsys7) — writethrough -> writeback
- VMID 706 kali-rd (tsys7) — writethrough -> writeback
- VMID 707 tsys-siem (tsys7) — writethrough -> writeback
DO NOT REBOOT: ultix-streaming, ultix-offstage, pfv-netinfra-01, pfv-netinfra-02
VMs with no cache setting (default=none): evaluate and set writeback where appropriate.
VMs on local-lvm: leave as-is (local disk doesn't need writeback).
Part 2: tuned deployment¶
Hypervisors (Proxmox hosts):
- Profile: virtual-host (optimizes CPU scheduling, I/O for virtualization)
- Install tuned + tuned-utils, set profile, enable service
VMs (guests):
- Profile: network-latency for k8s/storage-sensitive VMs
- Profile: throughput-performance for general workloads
- Install tuned, set appropriate profile per VM
Related: #391 (original writeback change on cnodes), #393 (network audit)
Updated by Charles N 1 day ago
- % Done changed from 0 to 75
COMPLETED:
Part 1: VM disk cache — DONE¶
Changed 15 NFS-backed VMs from writethrough/none to writeback across all hosts:
- tsys1: VMID 105, 108
- tsys6: VMID 600, 602, 604
- tsys7: VMID 701, 702, 703, 706, 707, 708, 709, 711
- tsys9: VMID 902, 905
Skipped (per user instruction): ultix-streaming (5111), ultix-offstage (5102/5000), pfv-netinfra-01 (103), pfv-netinfra-02 (904).
Skipped (local-lvm storage, doesn't need writeback): VMs with local-lvm disks on tsys3/5.
Previously changed: cnode1/2/3 (VMID 102/705/603) in ticket #391.
Part 2: Hypervisor tuned — DONE¶
Installed tuned + tuned-utils on all 7 Proxmox hosts. Profile: virtual-host.
- tsys1: active ✓
- tsys3: active ✓
- tsys4: active ✓ (IPv6 apt issue but installed from cache)
- tsys5: active ✓
- tsys6: active ✓
- tsys7: active ✓
- tsys9: active ✓
Part 2b: Guest-level tuned — DEFERRED¶
Cnodes need apt-get update before tuned can install (stale package indexes causing 404s). Will be deployed as part of k8s post-setup script when cluster is rebuilt. Profile: network-latency for k8s nodes.
Other VMs: deploy during next maintenance window or via Cloudinit/KNELIAC.
Updated by Charles N 1 day ago
- % Done changed from 75 to 90
GUEST-LEVEL TUNED DEPLOYMENT COMPLETE:
| VM | Profile | Status |
|---|---|---|
| cnode1 (100.125.134.53) | network-latency | ACTIVE |
| cnode2 (100.109.34.72) | network-latency | ACTIVE |
| cnode3 (100.106.222.18) | network-latency | ACTIVE |
| pfv-netinfra-01 | network-latency | ACTIVE |
| pfv-netinfra-02 | network-latency | ACTIVE |
Other VMs: No qemu-guest-agent installed, and most lack Tailscale/SSH access from the management workstation. Guest-level tuned for remaining VMs should be deployed via Cloudinit template (KNELTemplate) or during next build/maintenance cycle.
POST-CHANGE BASELINE (hypervisors):
| Host | fsync (avg) | dd write | tuned | bond |
|---|---|---|---|---|
| tsys1 | 1ms | 3.6 GB/s | virtual-host | single NIC |
| tsys3 | 1ms | 3.3 GB/s | virtual-host | single NIC |
| tsys4 | 1ms | 3.5 GB/s | virtual-host | 1 USB NIC (broken) |
| tsys5 | 2ms | 1.7 GB/s | virtual-host | 1 of 2 Intel NICs |
| tsys6 | 2ms | 1.7 GB/s | virtual-host | 2gbps LACP |
| tsys7 | 2ms | 2.0 GB/s | virtual-host | 2gbps LACP |
| tsys9 | 1ms | 4.6 GB/s | virtual-host | single NIC |
POST-CHANGE BASELINE (VMs with writeback):
| VM | write_cache | fsync avg |
|---|---|---|
| cnode1 | write back | 1ms |
| cnode2 | write back | 2ms |
| cnode3 | write back | 3ms |
| netinfra-01 | write back | 2ms |
| netinfra-02 | write back | 1ms |
All VMs now show 'write back' cache. Before writeback, fsync was 8900ms on cnodes. Now 1-3ms across the board.
Updated by Charles N about 16 hours ago
- % Done changed from 90 to 100
Verified 2026-08-07: all 5 target VMs (108,600,703,706,707) confirmed cache=writeback via qm config. Work complete.
Updated by Charles N about 16 hours ago
- Status changed from New to Resolved