Tam, gdzie pracuję, mamy wiele „dużych żelaznych” serwerów, które są używane do hostowania wielu maszyn wirtualnych za pomocą Xen Hypervisor. Zazwyczaj są one skonfigurowane z 32 GB pamięci RAM, procesorami Dual Quad Core i szybkimi dyskami z dużą ilością operacji we / wy.
Jesteśmy w momencie, gdy istniejąca konfiguracja sprzętowa staje się coraz dłuższa w zębie i nadszedł czas, aby pozyskać większy, szybszy i bardziej błyszczący nowy sprzęt.
Jak wspomniano powyżej, istniejący zestaw został wdrożony z 32 GB pamięci RAM, co skutecznie ograniczyło liczbę maszyn wirtualnych, które możemy wdrożyć na hoście.
Przy badaniu nowszego sprzętu widać jednak, że można uzyskać coraz więcej pamięci RAM na jednym komputerze z 64, 72, a nawet 96 GB w jednej obudowie. Oczywiście pozwoli nam to uzyskać więcej maszyn na danym hoście, co zawsze jest zwycięstwem. Dotychczasowa analiza sugeruje, że czynnik ograniczający zostanie teraz przesunięty na podsystem dyskowy.
Problem polega na tym, że próbujemy dowiedzieć się, gdzie jesteśmy ... Dzięki wykorzystaniu wiemy, że nie jesteśmy ograniczeni pod względem przepustowości we / wy, a tym bardziej liczby losowych I Operacje / O, które można wykonać. Wiemy anegdotycznie, że kiedy osiągniemy ten punkt, iowait poleci do nieba, a cała wydajność maszyny trafi do psów.
To jest sedno pytania, które zadaję: czy ktoś jest świadomy sposobu dokładnego śledzenia / trendowania istniejącej wydajności I / O, w szczególności w odniesieniu do liczby losowych operacji I / O, które są wykonywane?
To, co tak naprawdę próbuję uzyskać, to „ta konfiguracja może z powodzeniem obsłużyć liczbę losowych żądań We / Wy X, a obecnie (średnio) wykonujemy operacje Y ze szczytem operacji Z”.
Z góry dziękuję!
źródło
Używamy funkcji kolekcjonowania, ponieważ możemy zebrać wszystkie niezbędne informacje w jednym pliku i odtworzyć statystyki w razie potrzeby. To pozwoli ci zobaczyć liczbę IOPS na interwał nagrywania, przełączniki kontekstu, statystyki pamięci. Możesz to rozbić na dysk lub po prostu spojrzeć na system. Collectl obsługuje również połysk.
To doskonałe narzędzie do uzyskania przeglądu ogólnej wydajności systemu. Powodzenia, z obserwacji Dyski SATA zwykle osiągają od 200 do 300 IOPS podczas losowego dostępu.
źródło
Rejestrujemy i wykresujemy dyskowe operacje we / wy w ten sam sposób, w jaki robimy wszystkie inne parametry
Dane są pobierane z hostów za pomocą SNMP. Nasze urządzenia NAS / SAN robią to natywnie. Używamy net-snmp na wszystkich hostach Linuksa, które dostarczają te informacje z USB-DISKIO-MIB .
Dane są przechowywane (w formacie RRD) i wykreślane za pomocą kaktusów . Niektóre szablony We / Wy dysku podają nam liczbę i rozmiar transakcji, wyświetlane w zwykłym formacie bieżącym, średnim i szczytowym.
Te parametry niekoniecznie są tak ograniczone, jak użycie
iostat
/dstat
/sar
na hoście. Ale to ogień i zapomnienie, które konfiguruje się automatycznie, gdy nowa maszyna jest uruchamiana, przechowywana centralnie i pozostaje dostępna do wykorzystania w przyszłości.Korzystamy z tych danych, aby ostrzec nas o nietypowych trendach operacyjnych i zawsze patrzeć na nie za każdym razem, gdy planujemy wydajność.
Jest z tym kilka problemów:
Trudno jest oddzielić i skwantyfikować losowe operacje we / wy od sekwencyjnych operacji we / wy. Ponieważ podstawową różnicą między nimi jest fizyczna lokalizacja bloków przechowywanych na talerzu dyskowym. Na podstawie wielkości transakcji można zgadywać, że wiele małych transakcji prawdopodobnie dotyczy małych plików rozsianych na dysku. Ale nie ma gwarancji. Może to być sekwencyjne odczytywanie niewielkich ilości danych z jednego pliku lub sąsiednich bloków na dysku.
Rejestrowanie wskaźników daje bardzo dobry obraz tego, jakie są twoje dzisiejsze zobowiązania, jak zmieniają się one w czasie, a tym samym, jak będą się zmieniać w przyszłości. Nie powie ci, jaki jest sufit. Przynajmniej nie, zanim będzie za późno. Aby to ustalić, musisz wykonać matematykę (na podstawie specyfikacji sprzętu), testy porównawcze (lubię
bonnie++
siebie) i dobrze jest mieć logistyczne wyobrażenie o tym, do czego te domU robią / są używane.źródło
W zależności od zaplecza pamięci (IBM SVC / DS8000) możesz bezpośrednio pobierać z niego statystyki dotyczące losowych operacji IOPS.
Aby pobrać statystyki z serwera, możesz użyć polecenia nmon . To nic nie kosztuje (jak w piwie). Pierwotnie opracowany przez IBM dla systemu AIX, działa również w systemie Linux.
źródło
Jeśli ludzie używają SAR, mam przynajmniej nadzieję, że próbujesz dane co kilka sekund. Kiedy używam Collectl, próbkuję raz / sekundę. Jeśli chodzi o pomiar, jak dobrze sobie radzisz z przypadkowymi operacjami we / wy, użyj narzędzia takiego jak Robin Miller dt (google it) i możesz łatwo wygenerować dużo losowych operacji we / wy, a następnie po prostu zmierzyć za pomocą metody zbierania, aby zobaczyć, ile może zrobić na sekundę. Typowy dysk zwykle wykonuje maksymalnie 200-300 operacji we / wy / s, w oparciu o opóźnienie obrotowe. Rozmiar bloku miał minimalny wpływ, ponieważ oczekiwanie 1/2 obrotu na umieszczenie dysku we właściwej lokalizacji przytłacza wszystko inne.
btw - iowait jest jednym z najbardziej niezrozumianych pomiarów. Nie ma to nic wspólnego z ładowaniem procesora, to po prostu oznacza, że procesor nie robił nic innego, gdy występowało we / wy. W rzeczywistości, jeśli masz 100% oczekiwania, to w zasadzie oznacza to, że jesteś w 100% bezczynny!
-znak
źródło