Problem med PowerFlex skrivprestanda
Summary: Efter att ha utfört nätverksunderhåll är skrivprestandan för vissa SDS:er nu dålig.
Symptoms
Scenario
- Det här problemet uppstår efter att nätverksunderhåll på Top of Rack-switchar (TOR) har utförts, vanligtvis en omstart av switcharna.
- SDS-noderna använder en LACP-bindning för datanätverken.
- Endast SDS-noderna som använder de switchar där underhåll utfördes påverkas.
- Skrivprestandan kan vara upp till hundratals millisekunder för en viss lagringspool/PD.
- Läsprestandan för samma uppsättning SDS:er är normal.
- "NET_LONG_RCV_GRP_PROCESS" i diag_counters.txt visar att värdena stiger snabbt, medan den senaste ökningen förblir låg.
Exempel:
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 det här exemplet är värdet i den tredje kolumnen högt (och ökar om du tittar live). Den femte kolumnen visar den senaste gången det påträffades, vilket är mindre än en sekund för en stor del av SDS:erna.
I ett felfritt PowerFlex-system kommer den tredje kolumnen inte att räkna upp och den femte kolumnen kommer att räkna upp, eftersom den senaste gången den påträffades ökar med tiden.
Om du vill titta på räknarna live kan följande kommandon köras:
#Set variabeln för SDS:erna i den berörda skyddsdomänen. Ange rätt PD-namn här.
pd=<PD_NAME>
#Set variabeln för antalet SDS:er i skyddsdomänen. Kör detta som det är.
num=`scli --query_protection_domain --protection_domain_name $pd |grep Protection |awk '{print $16}'`
#login för att det sista kommandot ska fungera.
scli --login --username admin
#Watch rätt räknare från kommandot "query_diag_counters" för varje 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"
I ett felfritt system kan du förvänta dig att den femte kolumnen räknar upp regelbundet med tiden och att den tredje kolumnen är statisk. Om tiden i den femte kolumnen är låg och den tredje kolumnen räknar upp är det ett symptom på problemet.
Effekt
Skrivprestanda är dålig för klienter.
Cause
Den "NET_LONG_RCV_GRP_PROCESS" som spåras ovan indikerar att det tog längre tid än 1 s att skicka TCP-data till en fjärransluten SDS.
Den här fördröjningen kan inträffa på grund av ett litet inledande TCP-överbelastningsfönster efter nätverksunderhåll och att parametern OOO-paket (Out of Order) inte har angetts korrekt i operativsystemet. Detta gör att SDS till SDS-socklar inte kan kommunicera effektivt, vilket leder till flera TCP-återsändningar och minskad segmentstorlek. Detta skapar en högre latens vid skrivningar, eftersom detta endast påverkar SDS till SDS-socketar.
Läsfördröjningen påverkas inte eftersom SDC:er (klienter) kommunicerar med en enda SDS per läs-I/O-begäran och inte förlitar sig på SDS till SDS TCP-kommunikation.
Resolution
För en omedelbar lösning startar du om SDS-tjänsten på varje nod som påverkas. Använd underhållsläge när du startar om SDS-processen. En "pkill sds" räcker när noden är i underhåll.
Gör följande för att förhindra att problemet uppstår i framtiden:
- Tillämpa de sysctl-inställningar som beskrivs i den här offentliga KB-artikeln:
Lagringsdataservernoder kanske inte innehåller rätt systemjusteringsparametrar, vilket kan leda till prestandaproblem
- Om du använder RHEL/CentOS 7 uppdaterar du OS-kernelversionen på SDS-noderna till "3.10.0-1160.66.1" eller senare
Berörd version
PowerFlex 3.x
Åtgärdat i version
RCM-version 3.6.3.2 eller senare
IC-version 38.363.02 eller senare