PowerScale OneFS: risoluzione dei problemi prestazionali
Summary: Risolvi i problemi di rallentamento di PowerScale OneFS con una guida completa sulla configurazione di rete, i carichi di elaborazione e il monitoraggio con InsightIQ per migliorare l'efficienza del cluster. ...
Symptoms
Le prestazioni dei computer client sono lente. Alcuni processi, in particolare quelli che vengono eseguiti nel cluster, hanno esito negativo o richiedono più tempo del previsto per il completamento.
Cause
I problemi relativi alle prestazioni sono in genere causati dal traffico di rete, da problemi di configurazione di rete, dal carico di elaborazione client o cluster o da una combinazione di questi. Questo articolo descrive diversi modi efficaci per risolvere i problemi relativi alle prestazioni.
Resolution
Risoluzione dei problemi con InsightIQ
Sommario:
- Utilizzo di Isilon InsightIQ
- Risoluzione dei problemi senza InsightIQ
- Throughput della rete
- Distribuzione delle connessioni client
- Throughput del cluster
- Elaborazione del cluster
- Operazioni in coda
- CPU
Utilizzo di Isilon InsightIQ
L'utilizzo di Isilon InsightIQ è il modo migliore per monitorare le prestazioni e risolvere i problemi relativi alle prestazioni.
L'appliance virtuale Isilon InsightIQ consente di monitorare e analizzare l'attività dell'Isilon Cluster tramite grafici flessibili e personalizzabili nell'applicazione web-based InsightIQ. Questi grafici forniscono informazioni dettagliate su hardware, software, file system e operazioni di protocollo del cluster. InsightIQ trasforma i dati in informazioni visive che mettono in evidenza eventuali anomalie nelle prestazioni, consentendo una rapida diagnosi dei colli di bottiglia o ottimizzando i flussi di lavoro.
Per informazioni dettagliate sull'utilizzo di InsightIQ, consultare PowerScale InsightIQ - Info Hub.
Risoluzione dei problemi senza InsightIQ
Se non si utilizza InsightIQ, è possibile eseguire una serie di comandi per analizzare i problemi relativi alle prestazioni. Risolvere i problemi relativi alle prestazioni esaminando innanzitutto il throughput di rete e del cluster, quindi l'elaborazione del cluster e infine le velocità della CPU dei singoli nodi.
Throughput della rete
Utilizzare uno strumento di test di rete come Iperf o Iperf3 Per determinare le funzionalità di throughput del cluster e dei computer client sulla rete.
L'utilizzo di IperfUtilizzando Iperf, eseguire i seguenti comandi sul cluster e sul client. Questi comandi definiscono una dimensione della finestra sufficientemente grande da indicare se il collegamento di rete è una potenziale causa dei problemi di latenza.
- Cluster:
iperf -s -w 262144 - Client
iperf -c <cluster IP> -w 262144
Se si utilizza Iperf3Utilizzando Iperf, eseguire i seguenti comandi sul cluster e sul client. Questi comandi definiscono una dimensione della finestra sufficientemente grande da indicare se il collegamento di rete è una potenziale causa dei problemi di latenza.
- Cluster:
iperf3 -s -w 262144 Clientiperf3 -c <cluster IP> -w 262144
Distribuzione delle connessioni client
Controllare quanti client NFS e SMB sono connessi al cluster per assicurarsi che non stiano favorendo un nodo.
- Aprire una connessione SSH a qualsiasi nodo nel cluster e accedere utilizzando l'account "root".
rootAccounts - Eseguire il comando
per controllare i client NFS.isi statistics query current list --nodes=all --keys=node.clientstats.connected.nfs,node.clientstats.active.nfs -d
isi statistics query - nodes=all --stats=node.clientstats.connected.nfs,node.clientstats.active.nfs L'output visualizza la quantità di client connessi per nodo e il numero di questi client attivi su ogni nodo. - Eseguire il comando
isi statistics query - nodes=all --stats=node.clientstats.connected.nfs,node.clientstats.active.nfsisi statistics query current list --keys=node.clientstats.connected.smb,node.clientstats.active.smb1,node.clientstats.active.smb2 -n all -d
L'output visualizza la quantità di client connessi per nodo e il numero di questi client attivi su ogni nodo.
Throughput del cluster
Valutare il throughput del cluster eseguendo alcuni test che misurano la quantità di tempo necessaria per leggere e scrivere in un file. Eseguire almeno un test di scrittura e un test di lettura, come indicato di seguito.
- Aprire una connessione SSH a qualsiasi nodo nel cluster e accedere utilizzando l'account "root".
rootAccounts - Passare alla scheda
/ifs:cd /ifs - Dall'interfaccia della riga di comando (CLI) sul cluster o da un computer client UNIX o Linux, utilizzare il comando
ddper scrivere un nuovo file nel cluster.
Eseguire questo comando:dd if=/dev/zero of=1GBfile bs=1024k count=1024
Questo comando crea un file di esempio da 1 GB e segnala la quantità di tempo necessaria per scriverlo su disco. - Dall'output di questo comando, estrapolare il numero di MB al secondo che è possibile scrivere su disco in flussi di lavoro a flusso singolo.
- Se si dispone di un client Mac e si desidera condurre ulteriori analisi:
- Avviare Monitoraggio Attività.
- Eseguire il comando
cat /dev/zero > /pathToFilecomando, dovepathToFileè il percorso del file di destinazione.
Questo comando consente di misurare il throughput delle operazioni di scrittura sull'Isilon Cluster. Anche se è possibile eseguire il comandoddda un client Mac, i risultati possono essere incoerenti. - Monitorare i risultati del comando nella scheda Rete di Monitoraggio Attività.
Quando si misura il throughput delle operazioni di lettura, assicurarsi di non condurre test di lettura sul file creato durante il test di scrittura. Poiché tale file è stato memorizzato nella cache, i risultati dei test di lettura non sono accurati. Testare invece un'operazione di lettura di un file non memorizzato nella cache. Trovare nel cluster un file di dimensioni superiori a 1 GB e fare riferimento a tale file nel test di lettura.
- Aprire una connessione SSH a qualsiasi nodo nel cluster e accedere utilizzando l'account "root".
rootAccounts - Dalla CLI sul cluster o da un computer client UNIX o Linux, utilizzare il comando
ddper leggere un file nel cluster.
Eseguire il comandodd if=/pathToLargeFile of=/dev/null bs=1024kcomando dovepathToFileè il percorso del file di destinazione.
Questo comando legge il file di destinazione e segnala la quantità di tempo necessaria per leggerlo. - Se si dispone di un client Mac e si desidera condurre ulteriori analisi:
- Avviare Monitoraggio Attività.
- Eseguire il comando
time cp /pathToLargeFile > /dev/nullcomando dovepathToFileè il percorso del file di destinazione.
Questo comando consente di misurare il throughput delle operazioni di lettura sul cluster Isilon. Anche se è possibile eseguire il comandoddda un client Mac, i risultati possono essere incoerenti. - Monitorare i risultati del comando nella scheda Rete di Monitoraggio Attività.
Elaborazione del cluster
Prima di esaminare le operazioni di input/output (I/O) (IOPS) del cluster:
- Determinare quali processi sono in esecuzione nel cluster. Se sono in esecuzione processi di restriping come AutoBalance, Collect o MultiScan, considerare il motivo per cui tali processi sono in esecuzione e se debbano continuare a essere in esecuzione.
- Questi processi possono generare un evento cluster: Evento 400100008: "File operations took longer than expected".
- Considerare il tipo di dati in uso. Se i computer client utilizzano file video o macchine virtuali di grandi dimensioni, il processo di restriping richiede una quantità maggiore di IOPS del disco rispetto al normale.
- Prendere in considerazione la sospensione temporanea di un processo di restriping. Ciò può migliorare significativamente le prestazioni e potrebbe essere una soluzione valida a breve termine per un problema relativo alle prestazioni.
Lavori SmartPools.
Le prestazioni dei client NFS e SMB possono peggiorare durante l'esecuzione del lavoro:
- Determinazione della priorità del lavoro SmartPools
isi job status
-
- Riduzione dell'impatto della policy
isi job types modify SmartPools --policy LOW
-
- Regola priorità
isi job types modify SmartPools --priority 7
-
- Pianificazione della policy per le ore non lavorative
isi job types modify SmartPools --policy OFF_HOURS
-
- Rivedere la configurazione dei tier, mantenendo il numero di tier sotto i 5
I/O
discoL'esame dell'I/O del disco può aiutare a determinare se alcuni dischi sono sovrautilizzati.
Per cluster
- Aprire una connessione SSH a qualsiasi nodo nel cluster e accedere utilizzando l'account "root".
- Eseguire il comando
comando per verificare l'I/O del disco.isi statistics pstat Dall'output di questo comando, dividere il numero di IOPS del disco per il numero totale di dischi nel cluster. Ad esempio, per un cluster a 8 nodi che utilizza nodi Isilon IQ 12000x, che ospita 12 unità per nodo, si dividono gli IOPS del disco per 96.
Per i nodi serie X e serie NL, dovrebbero essere presenti al massimo 70 IOPS del disco per flussi di lavoro casuali al 100% o massimo 140 IOPS del disco per flussi di lavoro sequenziali al 100%. Poiché i nodi serie NL hanno meno RAM e velocità inferiori della CPU rispetto ai nodi serie X, questi ultimi possono gestire IOPS del disco più elevati.
Per nodo e per disco
- Aprire una connessione SSH a qualsiasi nodo nel cluster e accedere utilizzando l'account "root".
- Eseguire il comando
per verificare gli IOPS del disco per nodo, che può aiutare a individuare i dischi che sono sovrautilizzati.isi statistics query current --nodes=all --stats=node.disk.xfers.rate.sum --format=top - Eseguire il comando
Comando per determinare come eseguire una query per le statistiche in base al disco.isi_stats_tool -a get_key_info|grep node.disk.xfer
Operazioni in coda
Un altro modo per determinare se i dischi sono sovrautilizzati consiste nel determinare il numero di operazioni in coda per ogni disco nel cluster. Per un flusso di lavoro basato su SMB a flusso singolo, una coda di 4 può indicare un problema, mentre per le operazioni di namespace NFS a elevata simultaneità, la coda può essere molto maggiore.
- Aprire una connessione SSH a qualsiasi nodo nel cluster e accedere utilizzando l'account "root".
rootAccounts - Eseguire il comando
Comando per determinare il numero di operazioni in coda per ogni disco nel cluster.isi statistics drive list --nodes=all --sort=queued -d - Determinare per quanto tempo l'operazione è rimasta in coda:
isi statistics drive list --nodes=all --sort=queued -d
CPU
I problemi della CPU sono spesso riconducibili alle operazioni che i client eseguono sul cluster. Uso del isi statistics è possibile determinare le operazioni che vengono eseguite sul cluster, catalogate in base al protocollo di rete o al computer client.
- Aprire una connessione SSH a qualsiasi nodo nel cluster e accedere utilizzando l'account "root".
rootAccounts - Eseguire il comando
Determinare quali operazioni vengono eseguite in rete e valutare quali di queste richiedono più tempo eseguendo il seguente comando:isi statistics protocol list --long --totalby Op,proto -d --sort TimeAvg --format top
L'output di questo comando fornisce statistiche dettagliate per tutti i protocolli di rete, organizzate in base al tempo impiegato dal cluster per rispondere ai client. Anche se i risultati di questo comando potrebbero non identificare quale operazione richiede più tempo, può puntare nella direzione giusta. - Eseguire il comando
per ottenere ulteriori informazioni sull'elaborazione della CPU, ad esempio le CPU dei nodi più utilizzate.isi statistics system --nodes all --format top - Eseguire il comando
Per ottenere i quattro processi su ciascun nodo che utilizzano la maggior parte delle risorse della CPU, eseguire il comando seguente:isi_for_array -sX 'top -u -n |grep PID -A4'
Additional Information
correlateDi seguito sono riportate le risorse consigliate relative a questo argomento che potrebbero essere di interesse: