Jeśli użyję „top”, mogę zobaczyć, który procesor jest zajęty i który proces wykorzystuje cały mój procesor.
Jeśli użyję "iostat -x", widzę, który dysk jest zajęty.
Ale jak sprawdzić, który proces wykorzystuje całą przepustowość dysku?
linux
io
performance
system-administration
iostat
Matthew Crumley
źródło
źródło
Odpowiedzi:
Szukasz
iotop
(zakładając, że masz jądro> 2.6.20 i Python 2.5). W przeciwnym razie chcesz podłączyć się do systemu plików. Polecam ten pierwszy.źródło
iotop
wydaje się pokazywać przepustowość we / wy, a nie liczbę operacji we / wy zużywanych przez procesy. To nie jest zbyt istotne. Proces wykonujący wiele małych zapisów + synchronizacja zużyje więcej pojemności IO dysku niż proces zapisujący dużą ciągłą partię danych z dużą szybkością.[jdb2/nvme0n1p1]
w iotop, ale miałem szczęście włączając / proc / sys / vm / block_dump i porównując dane wyjściowe do zdrowego / stabilnego systemu lxadm.com/Simple_filesystem_read/write_tracing_with_/proc/sys/ ... Pomogło to znaleźć kontener docker, który nieustannie generował żądania kubectl, wyczerpując kredyty serii EBS z wpisami w/home/spinnaker/.kube/cache/discovery/.../serverresources.json
. Po zawężeniu rzeczy do nazwy użytkownika / procesu coś takiegoiotop -atku systemd-network | grep kubectl
może również pomócAby dowiedzieć się, które procesy w stanie „D” (oczekujące na odpowiedź dysku) są obecnie uruchomione:
while true; do date; ps aux | awk '{if($8=="D") print $0;}'; sleep 1; done
lub
watch -n1 -d "ps axu | awk '{if (\$8==\"D\") {print \$0}}'"
Jak widać z wyniku, jdb2 / dm-0-8 (proces dziennika ext4) i kdmflush nieustannie blokują Linuksa.
Aby uzyskać więcej informacji, pomocny może być ten adres URL: Linux Wait-IO Problem
źródło
atop działa również dobrze i łatwo się instaluje nawet na starszych systemach CentOS 5.x, na których nie można uruchomić iotop. Kliknij,
d
aby wyświetlić szczegóły dysku w?
celu uzyskania pomocy.To wyraźnie pokazuje, że winowajcą jest Java pid 9862.
źródło
TL; DR
Jeśli możesz skorzystać
iotop
, zrób to. W przeciwnym razie może to pomóc.Użyj
top
, a następnie użyj tych skrótów:Musi to pokazywać wartości
> 1.0 wa
dla co najmniej jednego rdzenia - jeśli nie ma oczekujących na dysk, po prostu nie ma obciążenia we / wy i nie trzeba szukać dalej. Zwykle rozpoczynają się znaczące obciążenia> 15.0 wa
.Wybierz „S”, kolumnę stanu procesu. Odwróć kolejność sortowania, aby procesy „R” (uruchomione) były wyświetlane na górze. Jeśli potrafisz dostrzec procesy „D” (oczekujące na dysk), masz wskaźnik, jaki może być twój winowajca.
źródło
Użytkownicy KDE mogą użyć polecenia „ctrl-esc”, aby wywołać monitor aktywności systemu, a tam są wykresy aktywności we / wy z identyfikatorem i nazwą procesu.
Nie mam uprawnień do przesyłania obrazu ze względu na „status nowego użytkownika”, ale możesz sprawdzić poniższe zdjęcie. Ma kolumnę do odczytu i zapisu we / wy.
źródło
Czy rozważałeś
lsof
(wymień otwarte pliki)?źródło
iotop z flagą -a:
źródło