(Pyta facet z Windows) Pomiar opóźnienia dysku w Linuksie: czy przeszkadzam?

11

W systemie Windows za każdym razem, gdy chcę sprawdzić / potwierdzić, że mogą wystąpić problemy związane z operacjami we / wy na woluminie, na którym żyje baza danych lub inna aplikacja o niskim opóźnieniu, sprawdzam opóźnienie dysku.

Jeśli stale widzę licznik s przeciętnego dysku / transferu w systemie Windows > 18-20 ms, mój kanarek w kopalni właśnie zmarł i muszę to zbadać. Upadek prosty.

Patrzę teraz na Linuksa i nie widzę podobnej miary opartej na opóźnieniach. Szybkie badania, które przeprowadziłem, wskazują, że może nawet NIE CHCĘ ... Widzę wiele odniesień do We / Wy Czekaj to sposób, w jaki większość ludzi to śledzi.

Czy w tym zakresie stosuje się zasadę kciuka? Na przykład, czy DOWOLNE I / O czekają, że widzę źle dla woluminu bazy danych? Czy istnieje proste polecenie iostat, które pozwala mi lepiej patrzeć na ogólny stan dysku niż samo patrzenie w górę?

Dzięki wielkie!

Russell Christopher
źródło
4
Możesz spojrzeć w góręioping
ewwhite
Dzięki, @ewwhite. Chyba zastanawiam się, czy muszę całkowicie zmienić skupienie i zamiast tego monitorować to w inny sposób, rozumiesz?
Russell Christopher
2
Włącz zbieranie sysstat w swoich systemach. Następnie możesz sprawdzić procent procesora iowait, co jest bardzo przydatne do diagnozowania powolności związanej z IO.
EEAA
2
@RussellChristopher można zobaczyć przykładowe sarwyjście tutaj . Zwróć uwagę na %iowaitkolumnę.
EEAA
@Matt, chociaż jest BARDZO podobny, ostrość jest nieco inna. Kontrola jakości bardziej skupia się na przeprowadzaniu testów w symulowanym środowisku, ponieważ wydaje się, że to Q dotyczy bardziej monitorowania bieżącej wydajności w środowisku produkcyjnym.
BeowulfNode42

Odpowiedzi:

12

Osobiście używam polecenia iostat -xk 10i patrzę na awaitkolumnę.

  • -x Wyświetl rozszerzone statystyki.
  • -k Wyświetla statystyki w kilobajtach na sekundę. Lub użyj m dla megabajtów / s.
  • Interwał wyświetlania 10 w sekundach

Jest to praktycznie identyczna metryka jak w przypadku Średniego dysku / s transferu w systemie Windows i jest wyświetlana w ms zamiast w sekundach. Można więc zastosować podobne reguły praktyczne, choć będzie to zależeć od różnego rodzaju rzeczy. Zazwyczaj stwierdzam, że użytkownicy zaczynają narzekać na 15 ms, a 20 ms jest bardzo złe.

Naciśnij ctrl + c, aby wyjść, lub określ liczbę iteracji do wyświetlenia za pomocą parametru count. Zauważ, że wynik pierwszej iteracji jest mocno wypaczony ze względu na małą próbkę czasu zastosowaną w pierwszej iteracji.

Ze man iostatstrony

czekają Średni czas (w milisekundach) dla żądań We / Wy wysłanych do obsługiwanego urządzenia. Obejmuje to czas spędzony na żądaniach w kolejce i czas poświęcony na ich obsługę.

Edycja: await to główna metryka, której używam do oglądania dysku w trakcie produkcji, aby sprawdzić, czy jego przepustowość i iops są w stanie nadążyć za popytem.

% Iowait stat jest bardziej o równowadze między użytkowaniem procesora a dyskiem. % iostat pozostanie niższy niż oczekiwano, jeśli zarówno aktywność procesora, jak i aktywność dysku są wysokie. Z drugiej strony, zaczynając od dość niskiego poziomu wykorzystania dysku,% iostat może być stosunkowo wysoki, jeśli procesor jest bezczynny. To powiedziawszy, należy poczekać z odrobiną soli. Jeśli dzieje się dużo sekwencyjnego odczytu / zapisu, przekrzywi figurę do niższej wartości, a twoja praktyczna reguła 18 ~ 20 ms nie będzie przydatna w tych warunkach, ponieważ większość zapisywanych fragmentów będzie danymi sekwencyjnymi i będzie obsługiwana przez dysk bardzo szybko, podczas gdy inne losowe io będzie czekać, ze względu na wbudowany w dysk system Native-Command-Queuing (NCQ) w celu optymalizacji przepustowości, pozwalając dyskowi wybrać kolejność obsługiwanych żądań.

BeowulfNode42
źródło
Dzięki @ beowulfNode42. Czy to jest podstawowa miara, której używasz w kontekście „złego dysku”? New Relic, wydaje się koncentrować na procentach oczekiwania na we / wy i wykorzystaniu dysku (odczyt i zapis) ... To mnie zastanawia, czy gonię za niewłaściwymi danymi, czy też po prostu zgłaszają mniej przydatne informacje ...
Russell Christopher
@ RussellChristopher pozostałe statystyki zapewniają wymagany kontekst do interpretacji informacji oczekujących. np. czy jest dużo iops (r / i w / s), dużo MB / s, to średni rozmiar żądania (avgrq-sz) duży lub mały, i jaki jest średni rozmiar kolejki (avgqu-sz). Tak, wraz z parametrami związanymi z procesorem% iowait,% user,% system itp., Aby sprawdzić, czy dysk spowalnia procesor lub odwrotnie.
BeowulfNode42