Mam serwer, który ma naprawdę duże obciążenie. Nic nie wyskakuje na mnie pod względem wykorzystania procesora i nie jest zamiana.
Myślę, że to dlatego, że niektóre procesy czekają na We / Wy dysku i chcę zobaczyć, co czeka.
Czy jest jakiś program, który pokaże mi, jakie procesy czekają na IO? Wiem o iotop
tym, ale pokazuje to, co obecnie robi IO.
Czy to głupie pytanie? (Jeśli tak, wyjaśnij jak :))
iowait
informacji,iotop
wymaga podwyższonych uprawnień.watch
,ps
iawk
podaj tylko wymagane informacje i nie wymagaj podwyższonych uprawnień.ps
„s flagi POSIX iawk
ed go różnie:watch "(ps -eo stat,pid,comm|awk '(NR==1)||(\$1~/D/){print}')"
- W ten sposób uzyskasz nagłówki kolumn, a stat, PID i polecenia.ps axu
i poszukaj procesów, które są w stanie „D”. Na podstawie strony ps (1) procesy znajdujące się w stanie D są w nieprzerwanym śnie, co prawie zawsze oznacza „czekanie na IO”. Niestety zabicie tych procesów zwykle nie jest możliwe.źródło
Odpowiedź Zancheya jest najlepsza, jaką wiem, aby dowiedzieć się, co czeka na IO.
Kiedy mówisz, że twój serwer jest obciążony, co masz na myśli? Coś szczególnie reaguje wolno?
Jeśli zastanawiasz się, czy Twoje We / Wy dysku jest wąskim gardłem, użyłbym polecenia iostat (część pakietu sysstat), aby sprawdzić, czy dysk faktycznie jest obciążony.
Przykład:
źródło
Włącz rejestrowanie zrzutu_ bloku dla tego, jakie procesy wykonują operacje odczytu / zapisu bloku:
po zakończeniu wyłącz śledzenie, aby nie spamować plików dziennika:
źródło