Problemer med PowerFlex-skriveydeevne
Summary: Efter at have udført netværksvedligeholdelse er skriveydelsen for visse SDS er nu dårlig.
Symptoms
Scenario
- Dette problem opstår efter netværksvedligeholdelse på Top of Rack-switche (TOR'er) blev udført, typisk en genstart af switchene.
- SDS-noderne bruger en LACP-binding til datanetværkene.
- Kun SDS-noder, der bruger de switche, hvor vedligeholdelsen blev udført, påvirkes.
- Skriveydelsen kan være op til hundreder af millisekunder for en bestemt Storage Pool/PD.
- Læseydelsen for det samme sæt SDS'er er normal.
- "NET_LONG_RCV_GRP_PROCESS" i diag_counters.txt viser, at værdierne stiger hurtigt, mens den sidste gang, der er øget, forbliver lav.
Eksempel:
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
I dette eksempel er værdien i tredje kolonne høj (og stigende, hvis du ser live). Den femte kolonne viser sidste gang, den blev stødt på, hvilket er mindre end et sekund for en god del af SDS'erne.
I et sundt PowerFlex-system tæller den tredje kolonne ikke op, og den femte kolonne tæller op, da sidste gang, du stødte på, stiger over tid.
For at se tællerne live kan følgende kommandoer køres:
#Set variablen for SDS erne i det berørte beskyttelsesdomæne. Indtast det korrekte PD-navn her.
pd=<PD_NAME>
#Set variablen for antallet af SDS er i beskyttelsesdomænet. Kør dette, som det er.
num=`scli --query_protection_domain --protection_domain_name $pd |grep Protection |awk '{print $16}'`
#login for at lade den sidste kommando virke.
scli --login --username admin
#Watch den korrekte tæller fra kommandoen "query_diag_counters" for hvert sikkerhedsdatablad.
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"
I et sundt system skal du forvente, at den femte kolonne tæller regelmæssigt, efterhånden som tiden går, og den tredje kolonne er statisk. Hvis tiden for femte kolonne forbliver lav, og den tredje kolonne tæller op, er dette et symptom på problemet.
Indvirkning
Skriveydelsen er dårlig for klienter.
Cause
Den "NET_LONG_RCV_GRP_PROCESS", der spores ovenfor, angiver, at afsendelse af TCP-data til et eksternt SDS tog længere tid end 1 s at gennemføre.
Denne forsinkelse kan opstå på grund af et lille indledende TCP-overbelastningsvindue efter netværksvedligeholdelse og ikke har OOO-pakkeparameteren (Out of Order) indstillet korrekt i operativsystemet. Dette medfører, at SDS til SDS-stikkene ikke kan kommunikere effektivt, hvilket fører til flere TCP-retransmissioner og reduceret segmentstørrelse. Dette skaber en højere ventetid ved skrivninger, da dette kun påvirker SDS til SDS-stikkene.
Læseventetiden forbliver upåvirket, da SDC'erne (klienterne) kommunikerer med et enkelt SDS pr. læst IO-anmodning og ikke er afhængige af SDS til SDS TCP-kommunikation.
Resolution
Du kan få en øjeblikkelig løsning ved at genstarte SDS-tjenesten på hver node, der er berørt. Brug vedligeholdelsestilstand, når du genstarter SDS-processen. En "pkill sds" er tilstrækkelig, når noden er i vedligeholdelse.
Gør følgende for at forhindre, at problemet opstår i fremtiden:
- Anvend de sysctl-indstillinger, der er beskrevet i denne offentlige KB-artikel:
Storagedataservernoder indeholder muligvis ikke korrekte systemindstillingsparametre, hvilket kan medføre problemer med ydeevnen
- Hvis du bruger RHEL/CentOS 7, skal du opdatere OS-kerneversionen på SDS-noderne til "3.10.0-1160.66.1" eller nyere
Påvirket version
PowerFlex 3.x
Fast i version
RCM-version 3.6.3.2 eller nyere
IC-version 38.363.02 eller nyere