Perché una VM è lenta: processore, disco o sovrallocazione
La lentezza ha tre origini comuni e ognuna si vede altrove. Aggiungere core prima di trovare quella giusta di solito peggiora le cose.
AtlasPVE ·
Questa voce risponde a
- proxmox vm lenta
- proxmox sovrallocazione vcpu
- quale vm consuma la cpu
- cos’è io delay in proxmox
- quanti core dare a una vm
Quando una macchina virtuale rallenta, il primo riflesso è darle più core. Di solito non serve, e a volte peggiora. Prima va separata l’origine della lentezza.
Sovrallocazione: quando il totale delle vCPU supera i core
Le vCPU distribuite alle macchine di un server possono superare il numero di thread fisici. È normale e in genere innocuo, perché le macchine non girano tutte insieme. Ma se caricano tutte contemporaneamente si mettono in coda. Guardando dall’interno il processore in quel momento sembra scarico, mentre la macchina sta aspettando il proprio turno. Aggiungere core qui allunga la coda, non la accorcia.
Collo di bottiglia su un solo core
Certi lavori finiscono su un core e lì restano. Su una macchina a otto core l’uso totale può sembrare basso mentre un singolo core resta al massimo. Aggiungere core non cambia nulla; la risposta è dividere il lavoro oppure una configurazione con prestazioni single core più alte.
L’attesa del disco
Se la curva del processore è calma e la macchina resta lenta, si guarda al disco. Il server misura a parte il tempo speso ad attendere i dati. Quando quel valore sale, il problema non è calcolare ma attendere; tipo di disco, impostazione della cache e le altre macchine sullo stesso disco entrano in gioco.
L’ordine con cui guardare
Prima confrontare il totale delle vCPU con i thread fisici, poi osservare il carico per core, e solo alla fine il tempo di attesa del disco. Tutte e tre le misure stanno dal lato host; dall’interno questi tre stati non si distinguono.
Fonti
La documentazione ufficiale di Proxmox. In inglese, e su questo argomento l’ultima parola è la sua.