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?
hard-drive
io
user35581
źródło
źródło
Odpowiedzi:
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.
źródło