Problémy s výkonem při zápisu do systému PowerFlex
Summary: Po provedení údržby sítě je nyní výkon zápisu některých SDS nízký.
Symptoms
Scénář
- K tomuto problému dochází po provedení údržby sítě na přepínačích TOR (Top of Rack), obvykle po restartování přepínačů.
- Uzly SDS používají pro datové sítě vazbu LACP.
- Ovlivněny jsou pouze uzly SDS používající přepínače, kde byla provedena údržba.
- Výkon zápisu může být pro určitý fond úložiště / PD až stovky milisekund.
- Výkon čtení stejné sady SDS je normální.
- "NET_LONG_RCV_GRP_PROCESS" v diag_counters.txt ukazuje, že hodnoty rychle stoupají, zatímco poslední přírůstek zůstává nízký.
Příklad:
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
V tomto příkladu je hodnota ve třetím sloupci vysoká (a zvyšuje se při živém sledování). Pátý sloupec ukazuje, kdy se s ním naposledy setkali, což je u velké části SDS méně než sekunda.
Ve zdravém systému PowerFlex se třetí sloupec nebude odpočítávat a pátý sloupec se bude počítat, protože poslední zjištěný čas se v průběhu času zvyšuje.
Chcete-li sledovat čítače živě, lze spustit následující příkazy:
#Set proměnné pro úložiště SDS v dotčené doméně ochrany. Zde zadejte správný název OÚ.
pd=<PD_NAME>
#Set proměnnou pro počet SDS v doméně ochrany. Spusťte postup tak, jak je.
num=`scli --query_protection_domain --protection_domain_name $pd |grep Protection |awk '{print $16}'`
#login, aby fungoval poslední příkaz.
scli --login --username admin
#Watch správný čítač z příkazu "query_diag_counters" pro každý 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"
Ve zdravém systému očekávejte, že pátý sloupec se bude pravidelně odpočítávat, jak čas plyne, a třetí sloupec bude statický. Pokud čas pátého sloupce zůstává nízký a třetí sloupec se odpočítává, jedná se o příznak problému.
Dopad
Výkon zápisu je pro klienty nízký.
Cause
Výše sledovaná hodnota "NET_LONG_RCV_GRP_PROCESS" znamená, že odeslání dat TCP do vzdáleného úložiště SDS trvalo déle než 1 s.
K tomuto zpoždění může dojít kvůli malému počátečnímu oknu zahlcení TCP po údržbě sítě a tomu, že v operačním systému není správně nastaven parametr paketů OOO (Out of Order). To způsobí, že sokety SDS do SDS nebudou schopny efektivně komunikovat, což vede k vícenásobným opakovaným přenosům TCP a zmenšení velikosti segmentu. To vytváří vyšší latenci při zápisu, protože to ovlivní pouze provoz mezi SDS a sokety SDS.
Latence čtení zůstává nedotčena, protože SDC (klienti) komunikují s jedním SDS na každý požadavek I/O čtení a nespoléhají se na komunikaci TCP mezi SDS.
Resolution
Pro okamžité alternativní řešení restartujte službu SDS na každém dotčeném uzlu. Při restartování procesu SDS použijte režim údržby. Jakmile je na uzlu provedena údržba, stačí příkaz "pkill sds".
Chcete-li tomuto problému v budoucnu zabránit, postupujte takto:
- Použijte nastavení sysctl popsaná v tomto veřejném článku znalostní databáze:
Uzly datového serveru úložiště nemusí obsahovat správné parametry ladění systému, což může vést k problémům s výkonem
- Pokud používáte RHEL/CentOS 7, aktualizujte verzi jádra operačního systému na uzlech SDS na "3.10.0-1160.66.1" nebo novější
Dotčená verze
PowerFlex 3.x
Opraveno ve verzi
RCM verze 3.6.3.2 nebo novější
, IC verze 38.363.02 nebo novější