Mam problem z utknięciem systemu Linux i znalazłem sysstat / sar, który zgłasza ogromne szczyty wykorzystania I / O dysku, średni czas obsługi, a także średni czas oczekiwania w czasie utknięcia systemu.
Jak mogłem ustalić, który proces powoduje te szczyty, gdy następnym razem się to stanie?
Czy można to zrobić z sar (tj .: czy mogę znaleźć te informacje z plików sar zarejestrowanych w alreade?
Wyjście dla „sar -d”, przeciągnięcie systemu nastąpiło około 12.58–13.01.
12:40:01 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
12:40:01 dev8-0 11.57 0.11 710.08 61.36 0.01 0.97 0.37 0.43
12:45:01 dev8-0 13.36 0.00 972.93 72.82 0.01 1.00 0.32 0.43
12:50:01 dev8-0 13.55 0.03 616.56 45.49 0.01 0.70 0.35 0.47
12:55:01 dev8-0 13.99 0.08 917.00 65.55 0.01 0.86 0.37 0.52
13:01:02 dev8-0 6.28 0.00 400.53 63.81 0.89 141.87 141.12 88.59
13:05:01 dev8-0 22.75 0.03 932.13 40.97 0.01 0.65 0.27 0.62
13:10:01 dev8-0 13.11 0.00 634.55 48.42 0.01 0.71 0.38 0.50
To jest pytanie uzupełniające do wątku, który rozpocząłem wczoraj: Nagłe szczyty w obciążeniu i blokada dysku czekają , mam nadzieję, że jest ok, że stworzyłem nowy temat / pytanie w tej sprawie, ponieważ nie byłem jeszcze w stanie rozwiązać problemu.
linux
performance
storage
hard-drive
Avada Kedavra
źródło
źródło
Odpowiedzi:
Jeśli masz szczęście, aby złapać następny okres szczytowego wykorzystania, możesz interaktywnie badać statystyki operacji we / wy dla poszczególnych procesów za pomocą iotop .
źródło
Możesz użyć pidstat do drukowania skumulowanych statystyk IO na proces co 20 sekund za pomocą tego polecenia:
Każdy wiersz będzie miał następujące kolumny:
Dane wyjściowe wyglądają następująco:
źródło
Nic nie przebije ciągłego monitorowania, po prostu nie możesz odzyskać danych wrażliwych na czas po wydarzeniu ...
Istnieje kilka rzeczy, które mogą być w stanie sprawdzić się wplątać lub wyeliminowania jednak -
/proc
jest twoim przyjacielem.Pola 10, 11 to skumulowane sektory zapisu i zapis skumulowanego czasu (ms). To pokaże twoje gorące partycje systemu plików.
Te pola to PID, polecenia i skumulowane znaczniki IO-wait. Spowoduje to wyświetlenie twoich gorących procesów, choć tylko wtedy, gdy nadal działają . (Prawdopodobnie chcesz zignorować wątki dziennika systemu plików).
Przydatność powyższego zależy od czasu bezczynności, charakteru twoich długotrwałych procesów i sposobu użytkowania systemów plików.
Ostrzeżenia: nie dotyczy jąder starszych niż 2.6, sprawdź dokumentację, jeśli nie jesteś pewien.
(Teraz idź i zrób sobie przysługę dla siebie, zainstaluj Munin / Nagios / Cacti / cokolwiek ;-)
źródło
Zastosowanie
atop
. ( http://www.atoptool.nl/ )Zapisz dane do skompresowanego pliku, który
atop
można później odczytać w interaktywnym stylu. Odczytaj (delta) co 10 sekund. zrób to 1080 razy (3 godziny; więc jeśli o tym zapomnisz, plik wyjściowy nie zabraknie Ci dysku):Gdy coś złego się powtórzy:
(nawet jeśli nadal działa w tle, dodaje tylko co 10 sekund)
Odkąd powiedziałeś IO, uderzyłbym 3 klawisze: tdD
źródło
Zastosowanie
btrace
. Na przykład jest łatwy w użyciubtrace /dev/sda
. Jeśli polecenie nie jest dostępne, prawdopodobnie jest dostępne w pakiecie blktrace .EDYCJA : Ponieważ debugfs nie jest włączony w jądrze, możesz spróbować
date >>/tmp/wtf && ps -eo "cmd,pid,min_flt,maj_flt" >>/tmp/wtf
lub podobnie. Rejestrowanie błędów stron nie jest oczywiście tym samym, co używanie btrace, ale jeśli masz szczęście, MOŻE dać ci wskazówki na temat najbardziej wymagających procesów na dysku. Właśnie wypróbowałem ten jeden z moich najbardziej intensywnych serwerów we / wy, a na liście znalazły się procesy, o których wiem, że zużywają dużo we / wy.źródło