Ilekroć jest wysoki dysk I / O, system jest zwykle znacznie wolniejszy i mniej responsywny niż zwykle. Jakie są postępy w jądrze Linuksa w tym zakresie? Czy nad tym problemem aktywnie się pracuje?
Ilekroć jest wysoki dysk I / O, system jest zwykle znacznie wolniejszy i mniej responsywny niż zwykle. Jakie są postępy w jądrze Linuksa w tym zakresie? Czy nad tym problemem aktywnie się pracuje?
Odpowiedzi:
Myślę, że w większości zostało to rozwiązane. Moja wydajność przy dużym obciążeniu IO poprawiła się w wersji 2.6.36 i spodziewam się, że poprawi się ona w wersji 2.6.37. Zobacz te artykuły phoronix .
Wu Fengguang i KOSAKI Motohiro opublikowali w tym tygodniu łatki, które ich zdaniem rozwiązują niektóre z tych problemów z reagowaniem, które nazywają „system przestaje reagować pod presją pamięci i dużą ilością stron brudnych / zapisujących”. Andreas Mohr, jeden z użytkowników, który zgłosił ten problem do LKML i przetestował dwie łatki zastosowane przeciwko vmscan jądra, zgłosił sukces. Problem Andreasa polegał na tym, że system całkowicie przestał reagować (a przejście na VT zajęło ponad 20 sekund) podczas tworzenia systemu plików EXT4, gdy dysk SSD był podłączony przez USB 1.1. W jego systemie podczas pisania 300M z pliku / dev / zero problem był jeszcze gorszy.
Oto bezpośredni link do błędu
Również z Phoronix
Na szczęście, na podstawie naszych testów i raportów innych użytkowników Linuksa, którzy szukają rozwiązania tego problemu, wydaje się, że stosunkowo niewielkie opublikowane łatki vmscan rozwiązują ten problem. Interfejs użytkownika (w naszym przypadku GNOME) wciąż nie jest w 100% płynny, jeśli system utrzymuje przytłaczającą ilość aktywności na dysku, ale z pewnością jest znacznie lepszy niż wcześniej, a co jest nawet teraz dostępne z jądrem Linuksa 2.6.35.
Jest też ogłoszenie wydania Phoronix 2.6.36
Wygląda na to, że bariery blokowe znikają, a to powinno również pomóc w wydajności.
W praktyce bariery mają nieprzyjemną reputację polegającą na zabijaniu wydajności blokowych operacji we / wy, do tego stopnia, że administratorzy często kuszą się, aby je wyłączyć i podjąć ryzyko. Chociaż operacje znakowane w kolejce zapewniane przez współczesny sprzęt powinny dość dobrze wdrażać bariery, próby wykorzystania tych funkcji generalnie napotykały trudności. Tak więc, w prawdziwym świecie, bariery są wdrażane poprzez po prostu opróżnienie kolejki żądań We / Wy przed wydaniem operacji bariery, z pewnymi operacjami opróżnienia, aby sprzęt rzeczywiście zatwierdził dane na trwałym nośniku. Operacje drenażu kolejek zablokują urządzenie i zabiją równoległość potrzebną do pełnej wydajności; nic dziwnego, że stosowanie barier może być bolesne.
Jest też ten artykuł LWN na temat uczciwego planowania we / wy
Powiedziałbym, że IO przebudziło się jako wielka sprawa na temat czasu wydania ext4 w wersji 2.6.28. Poniższe linki prowadzą do wydań jądra Linuksa dla nowicjuszy , należy zapoznać się z sekcjami Blok i Systemy plików. Może to oczywiście być niesprawiedliwy sentyment lub po prostu kiedy zacząłem oglądać rozwój FS, jestem pewien, że cały czas się poprawiał, ale czuję, że niektóre z problemów z ext4 sprawiły, że ludzie patrzyli ciężko na stos IO lub być może spodziewali się, że ext4 rozwiąże wszystkie problemy z wydajnością, a kiedy nie zdali sobie sprawy, zdali sobie sprawę, że muszą szukać problemów gdzie indziej.
2.6.28 , 2.6.29 , 2.6.30 , 2.6.31 , 2.6.32 , 2.6.33 , 2.6.34 , 2.6.35 , 2.6.36 , 2.6.37