Zrozumieć iotop

1

Mam kwerendę wyboru postgresql, która zużywa tylko 12% procesora i mało do pamięci, ale nadal trwa około minuty.

Natychmiast spróbowałem sprawdzić IO, używając iotop. Rzeczywiście, w „IO & gt” iotop's kolumna mój proces pokazywał wartości w zakresie 90-100.

Kilka pytań: Czy jest to ułamkowy procent wszystkich dostępnych IO? Jak to jest obliczane? Mój dysk twardy to dysk 7200 RPM, a cała tabela ma tylko 10 milionów wierszy. Czy IO jest zawsze ograniczone przez szybkość odczytu dysku twardego, czy może jest to inny problem?

user35581
źródło
Byłbym zszokowany, gdyby większość, jeśli nie cała baza danych, nie była w całości przechowywana w pamięci, więc pasek hdd ma niewiele wspólnego z tym, co opisujesz.
Ramhound
Z jakiegoś powodu „IO & gt;” w skokach iotop po uruchomieniu tego zapytania. Dysk odczytuje tylko przy ~ 130M / s i nie zapisuje się. Ponadto działa tylko około 150 procesów, z których większość to tylko domyślne procesy linuksowe w tle.
user35581

Odpowiedzi:

0

Spójrz na to pytanie: https://unix.stackexchange.com/questions/282225/how-does-iotop-calculate-the-relative-i-o-activity .

Kolumna We / Wy pokazuje procent czasu procesu, który jest spędzany na oczekiwaniu na operacje we / wy. Nie ma więc związku z globalnym wykorzystaniem dysku.

W komentarzach wskazałeś, że twój dysk odczytuje ~ 130 MB / s. Mam tutaj 5400 RPM HD i testowałem partycję systemową za pomocą gnome-dysków i nie mogłem uzyskać więcej niż 100 MB / s podczas odczytu. Więc może twój dysk nie jest w stanie obsłużyć całego tego obciążenia i dlatego zapytanie jest powolne.

Daniel Coelho
źródło