Jak długo trwa fsck woluminu?

9

Prowadzimy stronę internetową, która obecnie obsługuje 3-5 milionów odsłon. Nasza strona jest witryną udostępniania plików, dlatego zawiera 250 000 plików i kilka tysięcy linków symbolicznych.

Dysk twardy to dysk SATA 1500 GB.

Za pomocą hdparmdowiedzieliśmy się, że nasza prędkość dysku twardego została zmniejszona do 15-20 MB / s, czyli 80 MB / s.

Teraz chcemy uruchomić, fsckaby naprawić problem z dyskiem.

  1. Czy fsckrozwiąże ten problem?
  2. Ile czasu fsckzajmie ukończenie (chcemy tylko obliczyć czas przestoju, który będziemy mieli)?
Khizar Ansari
źródło
Z jakiego systemu plików korzystasz? Czy to macierz RAID, czy zwykły dysk SATA?
Kyle Smith
prosty dysk SATA i system plików to ext3
khizar ansari
11
Dlaczego używasz produkcyjnego serwera WWW na jednym dysku? Serwery z pojedynczymi dyskami nie są serwerami - tykają bomby zegarowe.
Evan Anderson
3
Wygląda na to, że ten dysk umiera. Natychmiast migruj dane (do prawdziwej macierzy RAID ze sprzętowym kontrolerem zasilanym bateryjnie).
Joel E Salas

Odpowiedzi:

8

Zmniejszenia prędkości należy się spodziewać, ponieważ liczba plików, do których uzyskuje się dostęp jednocześnie, wzrasta. Dyski twarde nie lubią być używane równolegle: za każdym razem, gdy głowica odczytu / zapisu musi przełączać cylindry, tracisz kilka milisekund. Nawet jeśli dwa pliki znajdują się na tym samym cylindrze lub nawet na tej samej ścieżce, może być konieczne poczekanie obrotu, aby przejść z jednego do drugiego. Jeśli mierzysz wydajność dysku w megabitach na sekundę, spodziewaj się, że spadnie on wykładniczo wraz ze wzrostem dostępu równoległego.

fsck nie pomoże w tym: naprawia tylko uszkodzenie struktury katalogów, nie przeprowadza żadnej optymalizacji.

Idealnym rozwiązaniem byłoby przejście na pamięć półprzewodnikową, ponieważ nie ma żadnych fizycznych ograniczeń wirujących talerzy. Ale to chyba nieopłacalne.

Następnym najlepszym rozwiązaniem byłoby użycie macierzy RAID zoptymalizowanej pod kątem dostępu równoległego. Należy pamiętać, że RAID można skonfigurować dla wielu różnych profili wydajności, dlatego trzeba poświęcić trochę czasu na zapoznanie się z ustawieniami dowolnego sprzętu i sterowników RAID.

Możesz być w stanie zmniejszyć problem za pomocą agresywnego buforowania systemu plików. Jeśli twój system ma wystarczającą ilość pamięci RAM, Linux powinien już dawać sobie radę. Uruchom program, topaby zobaczyć, ile jest wolnej pamięci RAM. Ale jeśli najczęściej używane pliki nie mieszczą się w pamięci RAM (lub innej pamięci RAM, którą prawdopodobnie uzyskasz), to naprawdę nie pomoże.

Obejściem biedaka byłoby podzielenie plików na kilka różnych fizycznych dysków twardych (nie tylko różne partycje na tym samym dysku). To nie jest tak naprawdę długoterminowe, skalowalne rozwiązanie, które kosztuje więcej niż przyzwoitą macierz RAID. Ale może to być szybkie rozwiązanie, jeśli masz leżące dyski.

W przypadku każdego rozwiązania dotyczącego dysków twardych upewnij się, że mają one dużą prędkość obrotową i niskie opóźnienia wyszukiwania.

Napisałem tutaj artykuł z ogólnym doświadczeniem na temat wydajności dysku twardego:

Wskazówki dotyczące systemu UNIX - systemy plików

Seth Noble
źródło
Nie widzę, by jego hdparmtest miał wiele wspólnego z „dostępem równoległym”. Dla mnie to brzmi bardziej, jakby miał uszkodzony dysk. W przeszłości było szybciej, a teraz nie jest. Prawdopodobnie dlatego, że przenosi sektory.
Evan Anderson
Z pewnością jest to możliwe, chociaż sądzę, że przeniesienie na taką skalę spowodowałoby pewne błędy we / wy. W oparciu o bardzo powolną linię bazową wynoszącą 80 megabitów na sekundę, zakładałem, że test został uruchomiony na aktywnym systemie. Więc ... czy w dzienniku systemowym występują błędy we / wy, jak hdparmprzeprowadzono testy i czy wyniki wyrażono w „megabajtach” lub „megabajtach” na sekundę?
Seth Noble
3

Spodziewałem się 5 godzin na zakończenie fsck.

Zamiast tego rozważyłbym (to znaczy: testowanie, testowanie i testowanie) migrację do reiserfs.

marcoc
źródło
2
  1. Nie (fsck może naprawić uszkodzone metadane systemu plików, nie uszkodzony dysk ani narzędzie do defragmentacji).
  2. Zależy od systemu plików. Z ext3, niesamowicie długim, zarezerwowałbym kilka godzin. Bardziej nowoczesne systemy plików, takie jak ext4 lub xfs, mogą z łatwością być o rząd wielkości szybsze.
janneb
źródło
1

hdparm wykonuje sekwencyjny odczyt. Dysk z serwerem plików powinien wykonywać wiele operacji wyszukiwania, jak powiedzieli inni.

Jeśli otrzymujesz błędy HD, powinny one pojawić się w twoim / var / log / gdzieś.

Dlaczego nie spróbujesz użyć „smartctl -t short / dev / sda”, a następnie „smartctl -t long / dev / sda” ?? ... W przypadku większości nowych dysków twardych możesz wydać to polecenie nawet podczas korzystania z dysku twardego . Smart da ci wyniki. Możesz odczytać stan swojego dysku twardego za pomocą „smartctl --all / dev / sda” ..

Jeśli wysyłasz hdparm na HDD, który jest zamontowany z równoczesnym dostępem, może to być odpowiedź na pytanie, dlaczego Twoje wyniki są znacznie mniejsze niż wcześniej.

Powinienem jak najszybciej przenieść twoje dane do konfiguracji RAID.

Jose Tavares
źródło