Dell PowerEdge 2950 z dwoma kartami sieciowymi 1 Gb / s do dwóch portów 1 Gb / s przełącznika, który następnie przechodzi do NetApp z czterema kartami sieciowymi 1 Gb / s, które są obecne jako jeden interfejs wirtualny. 24 dyski, 7200k SATA, NetApp RAID-DP. Odwzorowałem każdą kartę sieciową hosta na NetApp przy użyciu MPIO w inicjatorze Microsoft iSCSI. Testowanie z SQLIO wydaje mi się, że przepustowość zapisu wynosi około 200 MB, ale moje odczyty są bliższe 100 MB.
Czy moje odczyty nie powinny być bliższe 200 MB, tak jak moje zapisy? Czy to problem z konfiguracją, czy istnieje podstawowy problem z pamięcią, którego nie rozumiem?
Aktualizacja: oto IOPS dla losowego obciążenia. Odczyty mają jednak sens, nie jestem pewien, co zrobić z 20000 dla zapisów. Pamięć podręczna SAN wynosi 3,2 GB. Testy SQLIO dotyczą pliku 25 GB.
źródło
Odpowiedzi:
Zapisy na dyskach faktycznie przechodzą do pamięci (NVRAM) na filtrze, który później zostanie opróżniony na dysk - na bezczynnym filtrze będą one niesamowicie szybkie, a zrzuty na poziomie 20 000 są całkiem wiarygodne (zobaczysz podobne prędkości z większości dysków SSD) .
Z drugiej strony, odczyty muszą pochodzić z dysku, chyba że znajdują się już w pamięci podręcznej odczytu filera (które, w przeciwieństwie do zapisów, znajdują się w pamięci ulotnej).
Trudno jest przypiąć dostawców pamięci masowej do procesorów Iops w celu obracania dysków, ale w przypadku napędu o prędkości 7200 obr./min 80-120 iops jest całkiem wiarygodne. Biorąc pod uwagę, że prawdopodobnie straciłeś kilka dysków na RAID-DP i / lub części zamienne NetApp, 2200 Iops jest zbliżone do tego, czego można oczekiwać od 22 dysków wykonujących około 100 Iops każdy.
Może to nie wyjaśniać twoich prędkości odczytu (twoje dyski mogą nie wykonywać pełnych 2200 Iopsów podczas wykonywania odczytu sekwencyjnego), ale może przynajmniej pomóc wyjaśnić twoją wydajność zapisu.
źródło
Dla potomnych, po wielu próbach i błędach, wymyśliliśmy, jak uzyskać oczekiwaną przepustowość.
Jak wspomniano powyżej, NetApp miał jeden wirtualny interfejs wspierany przez cztery fizyczne karty sieciowe. Host ma dwie karty sieciowe, a ja skonfigurowałem MPIO za pomocą MS iSCSI Initiator, aby istniała ścieżka z każdej karty sieciowej do jednego interfejsu wirtualnego. Wyniki były powyżej przepustowości - zapisy miały sens przy prawie 200 MB lub szybkości dwóch kart sieciowych, ale odczyty były o połowę mniejsze niż prędkość jednej karty sieciowej.
Po bliższym przyjrzeniu się nasz facet z SAN zauważył, że ruch był przepływany tylko przez jedną z fizycznych kart sieciowych dla odczytów. Nie jestem pewien, czy po naszej stronie wystąpił błąd konfiguracji, ale próbowaliśmy dwóch rzeczy i oboje uzyskaliśmy przepustowość. Jednym z nich było przejście z jednego interfejsu wirtualnego wspieranego przez cztery karty sieciowe na dwa wirtualne interfejsy, każdy wspierany przez dwa karty sieciowe. Następnie odwzoruj jedną kartę sieciową hosta na jeden interfejs wirtualny. Inną rzeczą, której próbowaliśmy, było użycie „aliasingu” po stronie SAN do prezentacji wielu wirtualnych interfejsów. (Nie jestem facetem z SAN, więc mam nadzieję, że powiedziałem to poprawnie.)
Moje podejście polega na tym, że potrzebowaliśmy SAN do prezentacji więcej niż jednego interfejsu, aby inicjator naprawdę widział wiele ścieżek. Oto nasza przepustowość teraz:
źródło