Come identificare il ritardo di I/O di Proxmox e diagnosticare i problemi di archiviazione?

Il ritardo di I/O di Proxmox può rallentare le macchine virtuali e compromettere le prestazioni. Questo articolo ne spiega il significato, mostra come valutare livelli accettabili e fornisce una guida passo dopo passo per individuare e correggere i ritardi di archiviazione.

download-icon
Download gratuito
per VM, sistema operativo, database, file, NAS, ecc.
sofia

Updated by Sofia on 2026/02/05

Indice dei contenuti
  • Cos'è un ritardo di I/O in Proxmox?

  • Cos'è un ritardo di I/O accettabile?

  • Come scoprire il motivo del ritardo di I/O in Proxmox?

  • Soluzione affidabile per il backup di VM Proxmox

  • Domande frequenti sui ritardi di I/O di Proxmox

  • Conclusione

La memoria di archiviazione è fondamentale per le prestazioni delle macchine virtuali. Il ritardo di input/output (I/O) rivela i tempi di attesa dell'archiviazione. Può rallentare le VM e frustrare gli amministratori. Questo articolo spiega il ritardo di I/O in Proxmox VE. Imparerai cosa significa, quali livelli sono accettabili e come individuare le cause a livello base, intermedio ed avanzato.

Cos'è un ritardo di I/O in Proxmox?

Il ritardo di I/O mostra quanto tempo i processi attendono per le operazioni su disco. Proxmox VE riporta il ritardo di I/O nella vista Summary del nodo per aiutare gli amministratori a individuare colli di bottiglia dell'archiviazione. Deriva dalla metrica iowait del livello blocchi di Linux, che traccia il tempo di inattività della CPU con operazioni di I/O in sospeso. In pratica, il ritardo di I/O aggrega i tempi di attesa di tutti i processi sull'host, campionando periodicamente le statistiche del kernel.

Il ritardo di I/O di Proxmox differisce dal carico grezzo della CPU. Un elevato utilizzo della CPU può indicare un'intensa attività computazionale, ma un alto ritardo di I/O segnala che l'archiviazione non riesce a tenere il passo. Questa metrica aiuta a identificare rallentamenti legati al disco. È correlata al valore %iowait di Linux mostrato da strumenti come iostat. Quando il ritardo di I/O aumenta, i processi si bloccano in attesa del completamento di operazioni di lettura o scrittura, causando ritardi nelle attività delle macchine virtuali e in operazioni come snapshot o backup.

Proxmox campiona il ritardo di I/O controllando il numero di processi in attesa non interrompibile (stato D) per l'I/O del disco. Esprime il tempo di attesa complessivo come percentuale del tempo totale della CPU. Questo campionamento fornisce una visione a livello di nodo, distinta dalle metriche per singola VM. Gli amministratori possono monitorarla in tempo reale tramite l'interfaccia web o recuperare le metriche tramite API per dashboard esterne.

Il ritardo IO risponde rapidamente al carico di archiviazione. Ad esempio, la clonazione di una macchina virtuale provoca un alto numero di letture su disco, aumentando il ritardo IO fino al completamento della copia. Allo stesso modo, scritture intense provenienti dall'interno di una VM possono farlo salire. L'osservazione delle tendenze del ritardo IO aiuta a correlare una risposta lenta della VM con pressioni sottostanti sull'archiviazione. In sintesi, il ritardo IO rappresenta per Proxmox la visione dell'attesa di archiviazione, basata sullo iowait di Linux, guidando gli amministratori verso problemi di storage in fase precoce.

Cos'è un ritardo di I/O accettabile?

Un ritardo di I/O accettabile garantisce che la reattività della macchina virtuale rimanga entro i livelli del servizio. Con carichi leggeri o moderati, valori inferiori al 5% spesso non causano impatti visibili. Picchi fino al 10–15% possono verificarsi durante operazioni come backup o migrazioni in tempo reale senza danni, se brevi. Tuttavia, valori costantemente superiori al 20% indicano tipicamente una sollecitazione dello storage che richiede intervento.

Il tipo di carico di lavoro influisce sulle soglie. In un ambiente domestico, ritardi brevemente più elevati possono essere tollerabili. In produzione, anche picchi brevi possono compromettere servizi sensibili alla latenza. Chiediti: il carico di lavoro è critico per la latenza? Se sì, cerca di rimanere sotto il 5% nella maggior parte dei casi ed evita picchi prolungati. Se attività batch vengono eseguite fuori orario, è accettabile un ritardo maggiore in quei momenti. È importante osservare le tendenze: monitora il ritardo I/O nel corso di giorni o settimane per individuare un aumento della baseline.

Osserva i modelli: picchi occasionali durante i backup possono essere normali se pianificati. Tuttavia, se il ritardo di I/O rimane elevato in condizioni di inattività, verifica lo stato o la configurazione dell'archiviazione. Molti amministratori considerano un valore costante superiore al 10% come avviso e superiore al 20% come critico. Alcuni trovano accettabile brevemente il 30% sotto carichi pesanti, ma evitano che si protragga. Picchi molto alti (50%+) spesso causano VM non reattive e richiedono un'intervento immediato.

La diversa archiviazione influisce sulla tolleranza: gli array SSD gestiscono più IOPS, mostrando una latenza inferiore sotto carico. I dischi rigidi o i pool misti possono raggiungere una latenza maggiore più rapidamente. L'archiviazione di rete come NFS o iSCSI può aggiungere latenza. Per Ceph o altri storage distribuiti, il carico di rete influenza anche il ritardo di I/O. Comprendi le capacità del tuo sistema di archiviazione e regola di conseguenza le soglie di ritardo.

La versione e la configurazione di Proxmox possono fare la differenza. Kernel e driver più recenti spesso migliorano le prestazioni e riducono l'attesa di I/O. Le versioni aggiornate di Proxmox VE potrebbero includere ottimizzazioni dello scheduler o un migliore supporto per code multiple. Testare sempre le impostazioni delle soglie dopo gli aggiornamenti. In sintesi, il ritardo di I/O accettabile dipende dal carico di lavoro, dall'archiviazione e dalla tolleranza al rischio dell'amministratore, ma è tipicamente inferiore al 5%; valori superiori al 20% in modo sostenuto richiedono una verifica.

Come scoprire il motivo del ritardo di I/O in Proxmox?

Individuare le cause richiede controlli stratificati, dall'hardware al guest. Inizia con semplici verifiche di stato, quindi passa a un'analisi approfondita.

1. Verifica lo stato dell'hardware di base

Per prima cosa, controlla lo stato del drive e le metriche di base. Usa smartctl -H sui dischi per verificare che segnalino uno stato sano. Gli SSD surriscaldati potrebbero ridurre le prestazioni, aumentando inaspettatamente il ritardo di I/O. Controlla la temperatura dei drive tramite gli attributi SMART e i sensori del server. Successivamente, verifica lo stato del controller RAID o del pool ZFS tramite zpool status. Dischi difettosi o array degradati possono causare ritardi.

Test I/O semplice: eseguire dd if=/dev/zero of=/path/to/storage/testfile bs=1M count=1024 oflag=direct all'interno di una VM di test o sull'host. Osservare la coerenza della velocità di trasferimento. Velocità insolitamente basse indicano problemi hardware o di configurazione. A questo livello, verificare anche cavi e alimentazione: cavi allentati o alimentatore difettoso possono influire sulle prestazioni dello storage.

2. Monitorare l'attività a livello di sistema operativo

Successivamente, monitora l'attività di I/O sul sistema operativo host. Esegui iostat -x 1 per visualizzare l'utilizzo del dispositivo, i tempi di attesa e le lunghezze delle code. Cerca valori di %util vicini al 100% o valori elevati di await, indicativi di saturazione. Usa iotop per identificare i processi con un intenso utilizzo di I/O. Filtra per root: sudo iotop -ao. Individua processi QEMU o di backup che accedono ai dischi. Correla i picchi di I/O con gli aumenti dei ritardi di I/O nei log dell'interfaccia utente di Proxmox.

Verifica gli stati della CPU: utilizza mpstat 1 o vmstat 1 per visualizzare %iowait. Un valore elevato di iowait corrisponde a un ritardo nell'I/O. Tuttavia, tieni presente che iowait potrebbe nascondere problemi specifici per dispositivo; controlla sempre le statistiche per disco. Usa lsblk o df -h per confermare quali dischi supportano quali VM.

Se si utilizza un archivio di rete, testare lo stato della rete: ping verso NAS o destinazione di archiviazione; iperf3 tra host per misurare la larghezza di banda. Una latenza elevata o una bassa velocità di trasferimento possono aumentare il ritardo di I/O. Per NFS/iSCSI, verificare le opzioni di mount: impostazioni non corrette (noasync rispetto ad async) possono influire sulle prestazioni.

3. Ispeziona lo Stack di Archiviazione

Esplora i dettagli del livello di archiviazione. Per ZFS, utilizza zpool iostat -v 1 per visualizzare le statistiche I/O a livello di pool, le prestazioni per vdev e la distribuzione di letture/scritture. Se l'ARC è ridotta, le letture potrebbero frequentemente coinvolgere i dischi, aumentando la latenza. Valuta di ottimizzare l'ARC: incrementa la cache se la memoria lo consente, ma mantieni risorse disponibili per le macchine virtuali.

Per LVM, verifica il provisioning thin rispetto a quello thick: i pool thin possono frammentarsi e causare operazioni lente sui metadati. Usa lvs -a -o+seg_monitor per controllare lo stato del pool thin. Per LVM su storage di rete, assicurati che l'allineamento del volume corrisponda ai blocchi dello storage sottostante per evitare sovraccarichi aggiuntivi.

Per Ceph, monitorare le prestazioni OSD tramite il cruscotto Ceph. Una latenza elevata degli OSD incide direttamente sul ritardo I/O di Proxmox. Verificare la capacità di trasmissione della rete sulle reti pubbliche e del cluster. Assicurarsi che non ci siano collegamenti saturi.

Verifica le scelte del filesystem: XFS, ext4 o ZFS presentano comportamenti diversi sotto carico. Carichi di lavoro intensivi sui metadati potrebbero rallentare su filesystem che non dispongono di impostazioni di journaling ottimizzate. Verifica le opzioni di mount; per ext4, considera di disabilitare le barriere solo se sicuro.

4. Esaminare la configurazione di Proxmox

Eseguire pveperf sui nodi per misurare fsync/sync e le prestazioni di base di I/O del disco. Un valore basso di fsync/sec indica operazioni lente sui metadati. Confrontare i risultati tra i diversi nodi. Assicurarsi che hardware e impostazioni siano coerenti.

In Proxmox GUI, osserva quale macchina virtuale provoca ritardi di I/O. Utilizza Task History: verifica gli orari in cui il ritardo è aumentato. Correlali con le operazioni della VM: backup, snapshot, migrazioni in tempo reale. Valuta di pianificare i compiti pesanti in orari di minore attività.

Verifica le impostazioni del disco della macchina virtuale: preferisci VirtIO SCSI o VirtIO Block con la cache impostata su writeback o none in base al carico di lavoro. Evita cache non sicure in produzione. Nel sistema operativo guest, installa e aggiorna i driver VirtIO per ottenere le migliori prestazioni. Per le VM Windows, utilizza l'ultimo ISO VirtIO. Per i sistemi guest Linux, assicurati che i moduli virtio-blk o virtio-scsi siano caricati.

Esamina la configurazione dello storage Proxmox: per lo storage basato su directory, assicurati che le prestazioni del filesystem dell'host siano adeguate. Per LVM-thin, verifica la frammentazione del thin pool. Per ZFS, controlla la dimensione del record: scegli una dimensione del record adatta al carico di lavoro della macchina virtuale (ad esempio, 16K per database, 128K per uso generale). Per Ceph, regola le funzionalità rbd e la cache.

5. Esamina i log

Verifica in dmesg eventuali errori del driver di archiviazione: timeout, reset. Gli errori frequenti compromettono le prestazioni. Controlla /var/log/syslog e /var/log/kern.log alla ricerca di errori I/O ripetuti o avvisi. Nei log delle macchine virtuali presenti in /var/log/pve/tasks, cerca errori nelle attività di backup o migrazione.

Se si sospetta un problema hardware, controllare i log RAID o gli strumenti del produttore (ad esempio MegaCLI, storcli) per eventuali avvisi sull'array. Per SMART, esaminare gli attributi estesi: smartctl -a /dev/sdX per settori riassegnati o settori in attesa.

6. Ottimizzazione e test

Ottimizza lo scheduler I/O di Linux: per dischi rotativi, prendi in considerazione lo scheduler deadline; per SSD, utilizza none o mq-deadline in configurazioni a code multiple. Modifica con: echo mq-deadline > /sys/block/sdX/queue/scheduler. Prova le modifiche sotto carico controllato; monitora il ritardo I/O prima e dopo.

Regola le impostazioni ZFS: dimensione ARC, posizionamento ZIL/SLOG. Per carichi di lavoro con molte scritture, posiziona il dispositivo SLOG su un SSD a bassa latenza. Assicurati che la recordsize ZFS corrisponda al carico di lavoro della macchina virtuale. Per scritture casuali intense, una recordsize più piccola può essere utile. Monitora la latenza ZFS tramite zpool iostat.

Per LVM-thin, eseguire regolarmente thin_repair o convertire i dati attivi in volumi spessi se la frammentazione è elevata. In caso di carichi di lavoro intensi, prendere in considerazione la preallocazione delle estensioni.

Ottimizzazione dello stack di rete: per NFS o iSCSI, regolare l'MTU (jumbo frame) se la rete lo supporta. Regolare le dimensioni della finestra TCP per collegamenti con latenza elevata. Per iSCSI, abilitare sessioni multiple o il multipath per ridondanza e velocità effettiva.

Utilizza benchmark avanzati: esegui fio all'interno di una VM di test o sull'host per simulare carichi di lavoro. Ad esempio, fio --name=randread --ioengine=libaio --rw=randread --bs=4k --numjobs=4 --size=1G --runtime=60 --group_reporting. Confronta latenza e IOPS con le capacità previste.

Analizza le metriche a livello di kernel: utilizza perf o blktrace per un tracciamento approfondito del livello di blocco. Ciò aiuta a identificare con precisione ritardi nelle code o contese dello scheduler. Usa iostat -xk 1 e vmstat 1 durante i test per effettuare un'analisi comparativa.

Per scale estreme, valutare lo spostamento dell'archiviazione: utilizzare NVMe-oF o array SAN dedicati. Per configurazioni iper-convergenti, assicurarsi che la rete del cluster sia dedicata al traffico di archiviazione con QoS.

7. Pianificazione della capacità

Monitora la crescita dello spazio di archiviazione e le richieste di IOPS nel corso delle settimane. Utilizza dati storici per prevedere quando l'archiviazione raggiungerà il limite. Strumenti come Prometheus con l'esportatore Proxmox possono tracciare le tendenze del ritardo di I/O nel tempo. Pianifica l'aggiunta di dischi o la migrazione a supporti più veloci prima che si verifichino problemi.

Per l'archiviazione distribuita come Ceph, pianificare il numero di OSD e la larghezza di banda di rete per gestire i carichi di lavoro di picco. Utilizzare strumenti di simulazione o proof-of-concept per testare l'architettura.

Valuta l'archiviazione a livelli: posiziona i dischi delle VM attive nel pool SSD e quelli inattivi su HDD. Sposta le VM in modo dinamico in base ai modelli di utilizzo. Usa la Proxmox Storage Migration per spostare i dischi.

Soluzione affidabile per il backup di VM Proxmox

Prima di modificare le impostazioni di archiviazione, proteggi i tuoi dati con un backup affidabile. Vinchin Backup & Recovery è una soluzione professionale per il backup di VM a livello aziendale che supporta Proxmox insieme a VMware, Hyper-V, oVirt, OLVM, RHV, XCP-ng, XenServer, OpenStack, ZStack e oltre 15 ambienti. Offre funzionalità come backup incrementale perpetuo, deduplicazione e compressione dei dati, migrazione V2V, politiche di limitazione e molto altro, garantendo ulteriori protezioni avanzate.

La sua console web è intuitiva. Puoi:

  1.  Seleziona la VM Proxmox da cui eseguire il backup;

    Seleziona la macchina virtuale Proxmox da cui eseguire il backup

  2. Quindi scegliere l'archiviazione del backup;

    Scegli l'archiviazione di backup

  3. Successivamente configurare le strategie di backup;

    Configurare le strategie di backup

  4. Infine invia il lavoro per avviare il backup.

    Invia il lavoro

Vinchin è affidato da clienti in tutto il mondo con valutazioni eccellenti. Prova una versione di prova gratuita completa di 60 giorni e proteggi facilmente le VM Proxmox. Fai clic su Scarica Installatore per iniziare.

Domande frequenti sui ritardi di I/O di Proxmox

D1: Quale livello di ritardo di I/O è sicuro per i carichi di lavoro giornalieri di Proxmox?

A1: Sotto il 5% è normale; picchi occasionali del 10-15% sono accettabili; valori costantemente superiori al 20% richiedono una revisione.

Q2: Come posso verificare quale macchina virtuale causa un elevato ritardo di I/O?

A2: Utilizza iotop per individuare un intenso utilizzo del disco, quindi spegni o metti in pausa la macchina virtuale per confermarne l'impatto.

Q3: Le attività di backup possono causare ritardi di I/O e, in caso affermativo, come minimizzarli?

A3: Sì; utilizzare backup incrementali o incrementali permanenti e pianificare finestre fuori dall'orario di punta per ridurre il carico.

Conclusione

Il ritardo di I/O rivela i tempi di attesa dell'archiviazione che possono rallentare le VM. Hai imparato cos'è il ritardo di I/O, perché i valori inferiori al 5% sono ideali e quando le picchiature sono rilevanti. Hai visto come verificare lo stato hardware, monitorare l'I/O con strumenti come iostat e iotop, esaminare gli stack di archiviazione da ZFS allo storage di rete, e ottimizzare le impostazioni a livello di sistema operativo e Proxmox. Tra i passaggi avanzati figurano il tracciamento approfondito con fio, la pianificazione della capacità e l'ottimizzazione dello scheduler. 

Eseguire sempre il backup delle macchine virtuali prima di modifiche importanti: la soluzione Vinchin offre backup incrementale perpetuo, deduplicazione e molto altro per proteggere i dati in modo sicuro. Prova la versione di prova gratuita di Vinchin per 60 giorni per proteggere il tuo ambiente Proxmox.

Condividi su:

Categories: VM Tips