Considerazioni sulle prestazioni del file system

Completato

Se sono stati eseguiti carichi di lavoro HPC, è probabile che siano stati usati i termini operazioni, dimensioni blocco , operazioni di I/O al secondo, velocità effettiva e latenza. Questi fattori sono stati probabilmente presi in considerazione durante la scelta della risorsa di archiviazione.

Al termine di questa sezione si dovrebbe avere acquisito una comprensione pratica di questi cinque fattori relativi alle prestazioni e del modo in cui influiscono sui carichi di lavoro HPC.

Operazioni

Il termine operazioni indica qualsiasi attività tra host/computer e file system o disco.

È ad esempio probabile che si abbia familiarità con le operazioni che interessano un sistema operativo e il rispettivo disco locale:

  • Creazione (di un file)
  • Elimina
  • Si apra
  • Chiusura
  • Lettura
  • Scrittura
  • Aggiunta
  • Recupero di un attributo
  • Impostazione di un attributo
  • Rinomina

NFS rappresenta l'interazione a livello di rete tra un file client e un file server. Si noti che alcune di queste operazioni sono simili alle operazioni locali. Poiché NFS è un'API di rete, tuttavia, è possibile che queste operazioni di rete interessino più operazioni locali.

  • create (file o collegamento)
  • mkdir
  • readdir oppure readdirplus
  • getattr
  • setattr
  • lookup (ricerca di un handle di file in una directory)
  • link/symlink/readlink
  • read
  • rename
  • remove
  • rmdir
  • write

In che modo le operazioni influiscono sulla risorsa di archiviazione HPC?

È utile comprendere il modo in cui le operazioni influiscono sul sistema di archiviazione. Si supponga ad esempio che il carico di lavoro HPC crei un numero elevato di piccoli file in strutture di directory annidate. In questo scenario il carico di lavoro richiederà un numero più elevato di operazioni rispetto a un carico di lavoro che legge pochi file sequenziali di grandi dimensioni.

Questi criteri di accesso verranno illustrati nella prossima unità. create prevede più operazioni, quindi maggiore è il numero di file creati dal carico di lavoro, maggiore sarà l'effetto sulle prestazioni.

Dimensioni blocco

Le dimensioni blocco indicano le dimensioni dei dati più piccole, in byte, che un file system può leggere o scrivere come un'operazione.

Per queste finalità specifiche, le dimensioni blocco indicano anche le dimensioni del payload di un blocco di dati NFS (lettura/scrittura) che può essere trasmesso tra client e server NFS.

I server e i client NFS negoziano le dimensioni blocco e accettano le dimensioni più grandi possibili supportate reciprocamente. Le impostazioni predefinite possono essere comprese tra 4 KB e 64 KB. Il valore massimo configurabile corrente è 1 MB. I singoli pacchetti di dati possono avere payload con dimensioni non superiori al valore impostato.

È possibile configurare esplicitamente le dimensioni blocco nei client. Controllare l'istruzione mount completa nei computer del cluster HPC per determinare il valore. Le dimensioni predefinite sono impostate. Non si devono configurare esplicitamente i valori nell'istruzione mount.

I due argomenti usati per configurare le dimensioni blocco NFS sono rsize (dimensioni di lettura) e wsize (dimensioni di scrittura).

Se si configura una dimensione blocco ridotta o l'opzione scelta per i file system prevede una dimensione blocco massima ridotta e il carico di lavoro è costituito da file di grandi dimensioni, le prestazioni ne risentiranno a causa dei blocchi aggiuntivi dei file di grandi dimensioni.

IOPS

Il termine IOPS è l'acronimo per operazioni di Input/Output al secondo. Il numero di operazioni di I/O al secondo nell'ambiente di archiviazione dipende da questi attributi:

  • Tipo di supporti di memorizzazione Ad esempio, unità disco rigido (HDD, Hard Disk Drive) rispetto a unità SSD (Solid-State Drive).
  • Latenza introdotta dalla connettività di rete.
  • Dimensioni blocco usate dal file system.
  • Quantità di accesso simultaneo disponibile per il file system.

Una soluzione di archiviazione ha un singolo numero per operazioni di I/O al secondo. Se ad esempio si usa un disco gestito di Azure che supporta 5.000 operazioni di I/O al secondo, sarà possibile avere fino a 5.000 operazioni al secondo. Il valore di operazioni di I/O al secondo misura tuttavia il totale massimo per tutte le operazioni di lettura o scrittura sul disco, incluse le operazioni di lettura e di scrittura sull'overhead del sistema.

Il valore di operazioni di I/O al secondo è un'indicazione del numero massimo possibile di operazioni che possono essere supportate dal disco o dall'ambiente NAS.

Le misurazioni vengono in genere suddivise tra operazioni di lettura e di scrittura casuali e sequenziali.

  • Un'operazione casuale corrisponde alla lettura o alla scrittura di dati in punti casuali diversi di un disco o un file, ad esempio la modifica di un intervallo specifico di byte in un file.
  • Un'operazione sequenziale corrisponde all'accesso contiguo a un file, ovvero alla lettura a partire dall'inizio del file.

Velocità effettiva

La velocità effettiva indica la velocità di trasferimento totale possibile che un file system può gestire, misurata in byte al secondo.

Per eseguire un calcolo di base della velocità effettiva, moltiplicare le operazioni di I/O al secondo del sistema per le dimensioni blocco.

Se ad esempio è disponibile un disco che supporta 3.000 operazioni di I/O al secondo e le dimensioni blocco sono pari a 4.000, la velocità effettiva totale possibile sarà pari a 12 MBps.

Questo calcolo fornisce informazioni di base sulle possibilità generali relative alle prestazioni del file system. È tuttavia possibile che la velocità effettiva sia diversa. Altri fattori influiscono sulla velocità effettiva, ad esempio il sovraccarico della rete in caso di creazione o eliminazione di un numero elevato di file di piccole dimensioni.

Latenza

La latenza indica la quantità di tempo necessaria per completare un'operazione. Più elevata è la latenza, maggiore sarà la probabilità di esecuzioni più lente dei carichi di lavoro.

La latenza può avere più origini in una singola architettura, ognuna delle quali contribuisce a un effetto complessivo di latenza.

È possibile ottenere la latenza del file system se si verificano queste condizioni:

  • Connessione di rete lenta tra il client e il server.
  • Congestione sulla rete o nel file server, provocata da un numero elevato di richieste simultanee.
  • Latenza naturale dovuta alla distanza tra client e server, ad esempio su una rete WAN.
  • Accesso lento al sottosistema del disco sul file server stesso.

La latenza non è sempre coerente o chiaramente documentata. È necessario eseguire test per determinare la latenza tra i computer del cluster HPC e l'endpoint di archiviazione.

La latenza è anche un problema cumulativo. È possibile che le prestazioni di rete contribuiscano alla latenza, ma possono essere presenti anche altri fattori, ad esempio un errore di configurazione del sistema operativo del computer o inefficienze nel codice stesso dei carichi di lavoro. Ognuno di questi fattori influisce sulla latenza complessiva.

La latenza è il fattore più importante quando si valutano le prestazioni effettive del file system. Le latenze più elevate hanno come conseguenza un numero inferiore di operazioni di I/O al secondo. Un numero più basso di operazioni di I/O al secondo può avere come conseguenza una velocità effettiva più bassa.

Testare e calcolare i valori baseline

Quando si sceglie la configurazione esatta delle prestazioni per i carichi di lavoro HPC, il carico di lavoro stesso ha un impatto significativo.

Le offerte per il file system di Azure presentano valori previsti per operazioni di I/O al secondo e velocità effettiva. Se si sceglie di creare una soluzione NAS personalizzata, vengono usate le metriche illustrate per ogni macchina virtuale e per ogni SKU di disco gestito.

È possibile usare una configurazione HPC per il data center locale come punto di partenza per le aspettative relative alle prestazioni. Occorre ricordare che le soluzioni cloud consentono di creare più ambienti che eseguono carichi di lavoro. È quindi possibile che sia disponibile una maggiore flessibilità per carico di lavoro in Azure. L'ambiente locale è stato invece creato in base a una capacità specifica che non può essere espansa facilmente (dinamicamente).

È possibile usare strumenti di base come ping, fio, iozone e iometer per determinare i valori baseline del file system di Azure.

Profilatura dell'applicazione

È possibile che sia presente un carico di lavoro con elevato numero di operazioni di I/O che richiede un numero significativo di operazioni di I/O al secondo e velocità effettiva elevata per un'esecuzione efficiente. In alternativa è possibile che il carico di lavoro venga avviato, legga librerie e dati di origine nella memoria e continui con operazioni di I/O di archiviazione minime. È possibile che il primo carico di lavoro nell'elenco precedente scriva dati intermedi che devono essere letti da altri computer HPC. Tutte queste dinamiche contribuiscono alla definizione dell'approccio scelto per la soluzione di archiviazione. Per assicurarsi che i computer possano leggere i dati nel modo più rapido possibile, concentrarsi sulla riduzione della latenza di lettura. Se il carico di lavoro scrive tuttavia informazioni intermedie o completamente nuove nei dischi, è opportuno assicurarsi che ogni computer HPC possa accedere rapidamente ai dischi locali o a una soluzione NAS a condivisione rapida, in base a quali computer potrebbero avere bisogno di leggere le operazioni di scrittura intermedie.

È probabile che si voglia investire nella profilatura delle applicazioni per il rispettivo uso di operazioni di I/O di archiviazione. La profilatura risulta più importante con la crescita del cluster HPC a livello di dimensioni e numero di carichi di lavoro.

La profilatura comporta l'uso di strumenti in esecuzione nei computer HPC e nell'ambiente di archiviazione. Questi strumenti segnalano la quantità, il tipo e le dimensioni delle operazioni eseguite nell'ambiente di archiviazione.

La profilatura di un carico di lavoro può risultare difficile a causa della quantità di dati che potrebbe essere generata. Strumenti come iostat e sar possono creare un output significativo nel tempo. Potrebbe essere necessario analizzare i risultati e analizzarli ulteriormente, generando istogrammi.

Se si usa una soluzione NAS, è necessario raccogliere le statistiche dall'interfaccia del fornitore durante le esecuzioni della profilatura. Correlare quindi tali informazioni con i dati dei computer HPC per verificare i criteri di operazioni di I/O.

Sono disponibili strumenti di profilatura di terze parti per semplificare l'analisi delle operazioni di I/O, alcuni dei quali sono offerti dai fornitori di applicazioni HPC.

Verificare le conoscenze

1.

I blocchi di piccole dimensioni riducono le prestazioni se i file sono:

2.

Se è disponibile un disco che supporta 5.000 operazioni di I/O al secondo e le dimensioni blocco sono pari a 4.000, la velocità effettiva totale possibile sarà: