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!
ioping
sar
wyjście tutaj . Zwróć uwagę na%iowait
kolumnę.Odpowiedzi:
Osobiście używam polecenia
iostat -xk 10
i patrzę naawait
kolumnę.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 iostat
stronyczekają Ś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ń.
źródło