Problemy z wydajnością zapisu PowerFlex
Summary: Po wykonaniu konserwacji sieci wydajność zapisu na niektórych serwerach SDS jest niska.
Symptoms
Scenariusz
- Ten problem występuje po przeprowadzeniu konserwacji sieci w przełącznikach typu Top of Rack (TOR), zazwyczaj po ponownym uruchomieniu przełączników.
- Węzły SDS używają wiązania LACP dla sieci danych.
- Dotyczy to tylko węzłów SDS korzystających z przełączników, w których przeprowadzono konserwację.
- Wydajność zapisu może wynosić nawet setki milisekund dla określonej puli pamięci/PD.
- Wydajność odczytu tego samego zestawu kart SDS jest normalna.
- "NET_LONG_RCV_GRP_PROCESS" w diag_counters.txt pokazuje, że wartości szybko rosną, podczas gdy ostatni przyrost pozostaje niski.
Przykład:
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
W tym przykładzie wartość w trzeciej kolumnie jest wysoka (i wzrasta w przypadku oglądania na żywo). Piąta kolumna pokazuje czas ostatniego napotkania, czyli mniej niż sekundę dla sporej części SDS.
W sprawnym systemie PowerFlex trzecia kolumna nie będzie zliczać w górę, a piąta kolumna będzie zliczać w górę, ponieważ ostatnio napotkany czas zwiększa się w czasie.
Aby obserwować liczniki na żywo, można uruchomić następujące polecenia:
#Set zmienną dla serwerów SDS w domenie ochrony, której dotyczy problem. Wprowadź tutaj prawidłową nazwę PD.
pd=<PD_NAME>
#Set zmienną określającą liczbę serwerów SDS w domenie ochrony. Uruchom to bez zmian.
num=`scli --query_protection_domain --protection_domain_name $pd |grep Protection |awk '{print $16}'`
#login, aby zezwolić na działanie ostatniego polecenia.
scli --login --username admin
#Watch prawidłowy licznik za pomocą polecenia "query_diag_counters" dla każdego serwera 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"
W zdrowym systemie spodziewaj się, że piąta kolumna będzie regularnie zliczana w miarę upływu czasu, a trzecia kolumna będzie statyczna. Jeśli czas w piątej kolumnie jest niski, a w trzeciej kolumnie trwa odliczanie, jest to objaw problemu.
Wpływ
Wydajność zapisu jest niska w przypadku klientów.
Cause
Śledzony powyżej "NET_LONG_RCV_GRP_PROCESS" wskazuje, że wysyłanie danych TCP do zdalnego serwera SDS trwało dłużej niż 1 s.
Opóźnienie to może wystąpić z powodu małego początkowego okna przeciążenia TCP po konserwacji sieci i braku odpowiednio ustawionego parametru pakietów OOO (Out of Order) w systemie operacyjnym. Powoduje to, że gniazda SDS do SDS nie mogą się skutecznie komunikować, co prowadzi do wielu ponownych transmisji TCP i zmniejszenia rozmiaru segmentu. Powoduje to większe opóźnienie przy zapisie, ponieważ wpłynie to tylko na SDS do gniazd SDS.
Opóźnienie odczytu pozostaje niezmienione, ponieważ SDC (klienci) komunikują się z jednym SDS na żądanie we/wy odczytu i nie polegają na komunikacji SDS z SDS TCP.
Resolution
Aby natychmiast obejść problem, uruchom ponownie usługę SDS na każdym węźle, którego dotyczy problem. Użyj trybu konserwacji podczas ponownego uruchamiania procesu SDS. Po zakończeniu konserwacji węzła wystarczy "pkill sds".
Aby zapobiec wystąpieniu tego problemu w przyszłości, wykonaj następujące czynności:
- Zastosuj ustawienia sysctl omówione w tym publicznym artykule bazy wiedzy:
Węzły serwera danych pamięci masowej mogą nie zawierać prawidłowych parametrów dostrajania systemu, co może powodować problemy z wydajnością
- W przypadku korzystania z systemu RHEL/CentOS 7 zaktualizuj jądro systemu operacyjnego w węzłach SDS do wersji "3.10.0-1160.66.1" lub nowszej
Wersja, której dotyczy problem
PowerFlex 3.x
Naprawiono w wersji
RCM w wersji 3.6.3.2 lub nowszej
IC w wersji 38.363.02 lub nowszej