Ogromny, nieprzewidywalny spadek wydajności we / wy w systemie Linux

11

Używam testowania Debiana bez żadnych problemów przez ~ 6 lat (tylko regularnie go aktualizuję), ale ostatnio zaczęło wykazywać losowe zachowanie, które można streścić jako „Niska wydajność I / O, która utrzymuje się aż do ponownego uruchomienia”.

Problem polega na tym, że nagle wszystkie dyski odczytują i zapisują zwalniają do ~ 5 MB / s, co powoduje ciągły odczyt i zapis. Ponieważ szybkość jest tak niska, dyski nie są obciążane mechanicznie ani obciążane, ale wszystko zwalnia aż do ponownego uruchomienia.

Podsystem we / wy komputera składa się z jednego dysku SSD OCZ Vertex 3 i dwóch dysków twardych WD Caviar Black. Dysk SSD przechowuje część systemu operacyjnego obciążoną do odczytu, a partycja na dysku twardym przechowuje resztę.

Aby zdiagnozować problem, próbowałem bezskutecznie:

  • top nie wykazuje żadnej niekontrolowanej aktywności ani w procesorze, ani we / wy.
  • hdparmzwraca normalne oceny wydajności dysków (ja tylko sprawdziłem -t).
  • smartctlnie wykazuje żadnych problemów z wydajnością dysków. Długie testy wykazały, że dyski są jak nowe.

System ma chipset Z77, 16 GB pamięci RAM i procesor Intel i7 3770K, a statystyki nie wykazują żadnych oznak nasycenia w pamięci RAM, we / wy lub procesorze, ale nie mam doświadczenia z debugowaniem takich problemów (szczególnie w przestrzeni jądra). Każda pomoc będzie mile widziana.

Aktualizacja 1:

  • Jako środek ostrożności uruchomiłem (wymuszony) fsck na każdej partycji. Wszystkie FS są czyste.
  • Nawiasem mówiąc, znalazłem aktualizację systemu BIOS, która wyszła miesiąc temu i zastosowałem ją.
  • Żadna partycja nie jest wypełniona więcej niż 50%.

Aktualizacja 2:

Problem nie pojawia się na dwa dni. Albo fsckaktualizacja systemu BIOS usunęła niektóre zatory w systemie. Nadal monitoruję problem i zamknę pytanie z odpowiedzią pośmiertną.

Aktualizacja 3:

Problem właśnie się pojawił i zacząłem trochę kopać. Proszę zobaczyć odpowiedź.

bayindirh
źródło
1
problem fragmentacji atopmoże wskazywać, jak zajęte są dyski (na przykład podczas wyszukiwania przez cały czas).
Stéphane Chazelas
1
Aby wykluczyć niektóre dziwactwa, wyłączyć NCQ i ustawić harmonogram we / wy na noop.
frostschutz
1
„Niska wydajność I / O, która utrzymuje się aż do ponownego uruchomienia” może być uszkodzonym / błędnym urządzeniem, które zbyt często chwyta magistralę zbyt długo, co jest irytująco trudne do zdiagnozowania bez wymiany sprzętu.
msw
1
Następnie następną rzeczą do sprawdzenia jest sprawdzenie dzienników pod kątem błędów i sprawdzenie, czy jest dużo pamięci przydzielonej do buforów / pamięci podręcznej (patrz dane wyjściowe free)
symcbean
1
Możesz zobaczyć iowaititp., Jeśli zbierasz dane sar. Włączę, sysstatjeśli jeszcze nie działa. Możesz sprawdzić na sar -Awiększości platform z dziesięciominutowymi interwałami próbkowania.
Bratchley,

Odpowiedzi:

12

Ponownie udało mi się odtworzyć problem i był to wynik dużej pamięci podręcznej dysku. Moje pamięci podręczne dysków mogą wzrosnąć ponad 8 GB i wydaje się, że niektórym aplikacjom się to nie podoba i cierpi to na operacje we / wy.

Upuszczenie pamięci podręcznej dysku echo 3 > /proc/sys/vm/drop_cachesjako root rozwiązuje problem. Obecnie nie wiem, dlaczego pamięci podręczne dużych dysków powodują degradację I / O.

Ostatnia aktualizacja: po dalszych badaniach odkryłem, że liczba plików w pamięci podręcznej powoduje problem. Tracił dyski podczas próby przywrócenia wielu małych plików z powrotem na dysk. Ponieważ korzystam z systemu przez dziesięć lat, zdecydowałem się na ponowną instalację 64-bitowej wersji Debiana. Teraz działa płynnie. Prawdopodobnie był to efekt uboczny dziesięciu lat aktualizacji ze znalezieniem limitów 32-bitowego systemu operacyjnego.

bayindirh
źródło
2

Czy są w nim jakieś podejrzane wiadomości dmesg?

Więcej narzędzi, które możesz spróbować uzyskać wgląd w wąskie gardła systemu:

  • dstat
  • latencytop
  • sysprof
Elias Probst
źródło
Nic podejrzanego w żadnych logach. TBH brak wpisów w dzienniku związanych z tym problemem. Mimo to wypróbuję narzędzia. Nie powinno być wąskiego gardła w wysokiej klasy komputerze PC, gdy siedzi się w stanie bezczynności bez żadnych uruchomionych elementów. Myślę, że pamięć podręczna lub coś związanego z podsystemem we / wy idzie nie tak.
bayindirh
.... i iotop, fio
symcbean