Problemi relativi alle prestazioni di scrittura di PowerFlex
Summary: Dopo aver eseguito la manutenzione della rete, le prestazioni di scrittura di alcuni SDS sono ora scarse.
Symptoms
Scenario
- Questo problema si verifica dopo l'esecuzione della manutenzione di rete sugli switch Top of Rack (TOR), in genere un riavvio degli switch.
- I nodi SDS utilizzano un bond LACP per le reti di dati.
- Sono interessati solo i nodi SDS che utilizzano gli switch in cui è stata eseguita la manutenzione.
- Le prestazioni di scrittura possono essere fino a centinaia di millisecondi per un determinato pool di storage/PD.
- Le prestazioni di lettura dello stesso set di SDS sono normali.
- Il "NET_LONG_RCV_GRP_PROCESS" nel diag_counters.txt mostra che i valori salgono rapidamente, mentre l'ultima volta incrementata rimane bassa.
Esempio:
Comp :: Counter :: Value :: ExtData :: Last Counted(Ms) NET :: NET_LONG_RCV_GRP_PROCESS :: 3756453 :: 0xffffffff :: 3120 NET :: NET_LONG_RCV_GRP_PROCESS :: 3825395 :: 0xffffffff :: 960 NET :: NET_LONG_RCV_GRP_PROCESS :: 3705906 :: 0xffffffff :: 1320 NET :: NET_LONG_RCV_GRP_PROCESS :: 4094919 :: 0xffffffff :: 1230 NET :: NET_LONG_RCV_GRP_PROCESS :: 3954725 :: 0xffffffff :: 1390 NET :: NET_LONG_RCV_GRP_PROCESS :: 3594178 :: 0xffffffff :: 420 NET :: NET_LONG_RCV_GRP_PROCESS :: 3702403 :: 0xffffffff :: 680 NET :: NET_LONG_RCV_GRP_PROCESS :: 3830299 :: 0xffffffff :: 510 NET :: NET_LONG_RCV_GRP_PROCESS :: 3491713 :: 0xffffffff :: 330 NET :: NET_LONG_RCV_GRP_PROCESS :: 4155343 :: 0xffffffff :: 690
In questo esempio, il valore nella terza colonna è alto (e aumenta se si guarda in diretta). La quinta colonna mostra l'ultima volta che è stata rilevata, che è meno di un secondo per buona parte delle SDS.
In un sistema PowerFlex integro, la terza colonna non verrà conteggiata alla rovescia e la quinta colonna verrà conteggiata verso l'alto, poiché l'ultimo tempo riscontrato aumenta nel tempo.
Per guardare i contatori in tempo reale, è possibile eseguire i seguenti comandi:
#Set la variabile per gli SDS nel dominio di protezione interessato. Immettere qui il nome PD corretto.
pd=<PD_NAME>
#Set la variabile per il numero di SDS nel dominio di protezione. Eseguilo così com'è.
num=`scli --query_protection_domain --protection_domain_name $pd |grep Protection |awk '{print $16}'`
#login consentire l'esecuzione dell'ultimo comando.
scli --login --username admin
#Watch il contatore corretto dal comando "query_diag_counters" per ogni SDS.
watch -d -n 1 "for x in \$(scli --query_all_sds | grep -A $num $pd | grep ID | awk '{print \$5}'); do echo \$x; scli --query_diag_counters | grep -A30 \$x | grep -Em1 '\$x|NET_LONG_RCV_GRP_PROCESS'; done"
In un sistema integro, aspettati che la quinta colonna conti regolarmente con il passare del tempo e che la terza colonna sia statica. Se il tempo della quinta colonna rimane basso e la terza colonna sta contando alla rovescia, questo è un sintomo del problema.
Impatto
Le prestazioni di scrittura sono scarse per i client.
Cause
Il "NET_LONG_RCV_GRP_PROCESS" monitorato sopra indica che il completamento dell'invio dei dati TCP a un SDS remoto ha richiesto più di 1 secondo.
Questo ritardo può verificarsi a causa di una piccola finestra iniziale di congestione TCP dopo la manutenzione della rete e del parametro dei pacchetti OOO (non in ordine) impostato in modo appropriato nel sistema operativo. Per questo motivo, i socket tra SDS e SDS non sono in grado di comunicare in modo efficace, con conseguente ritrasmissione TCP multipla e riduzione delle dimensioni del segmento. Ciò crea una latenza più elevata sulle scritture, in quanto influirà solo sui socket tra SDS e SDS.
La latenza di lettura rimane inalterata in quanto gli SDC (client) comunicano con un singolo SDS per ogni richiesta I/O di lettura e non si basano sulla comunicazione TCP da SDS a SDS.
Resolution
Per una soluzione alternativa immediata, riavviare il servizio SDS su ogni nodo interessato. Utilizzare la modalità di manutenzione quando si riavvia il processo SDS. Un "pkill sds" è sufficiente una volta che il nodo è in manutenzione.
Per evitare che il problema si verifichi in futuro, procedere come segue:
- Applicare le impostazioni sysctl illustrate in questo articolo pubblico della Knowledge Base:
I nodi del server dati di storage potrebbero non contenere i parametri di ottimizzazione del sistema corretti, con conseguenti problemi di prestazioni
- Se si utilizza RHEL/CentOS 7, aggiornare la versione del kernel del sistema operativo sui nodi SDS a "3.10.0-1160.66.1" o successiva
Versione interessata
PowerFlex 3.x
Risolto nella versione
RCM versione 3.6.3.2 o successiva
, IC versione 38.363.02 o successiva