Ubuntu - niespójna wydajność z oprogramowaniem raid-1

0

Instaluję nowy system za pomocą soft-raid 1 z dwoma dyskami fizycznymi. Podczas przeprowadzania kilku testów (po odczekaniu na zakończenie pierwszej synchronizacji) stwierdziłem, że prędkość dysku twardego była bardzo niespójna.

Mój test był bardzo prosty: skopiowałem około gig plików JPEG za pomocą cp -r, a następnie usunąłem je i sprawdziłem, ile czasu to zajęło.

for i in {1..5} ; do
  echo ".. start run $i"
  time cp -r public public2

  echo "... deleting duplicate"
  time rm -rf public2

  sleep 1
done

Czasami w trakcie testu wydaje się, że proces „zawiesza się” na krótko, nie reaguje na ^ C i (jak widać na poniższych wynikach) powoduje opóźnienie o kilkadziesiąt sekund, według najlepszych raportów „Oczekiwanie na We / Wy” w dowolnym miejscu z 20 % do 70% w tej chwili, a konsola staje się powolna, nawet nie reaguje.

Były to wyniki z około 1 koncertem obrazów jpg:

        copy       delete
run 1   1.336s     35.929s
run 2   2.300s     50.737s
run 3   2.358s     26.562s
run 4   0.971s     23.717s
run 5   17.485s    27.074s

Prędkości wyraźnie różnią się dziko. Przeprowadziłem ten zestaw 5 testów kilka razy i pojawiają się one za każdym razem, choć niekoniecznie w tych samych seriach. W wyświetlanych wynikach opóźnienia występowały najczęściej podczas usuwania, ale to także jest różne.

Kolejna próba, jakiś czas później z mniejszym zestawem danych (~ 600 MB):

        copy       delete
run 1   11.614s    36.403s
run 2   0.630s     0.208s
run 3   0.652s     14.891s
run 4   0.676s     0.192s
run 5   0.640s     0.213s

Przy mniejszym zestawie opóźnienia występują znacznie rzadziej, często przechodząc wszystkie 5 przebiegów bez opóźnienia.

Jeszcze jedna próba z większym zestawem danych, około 1,5 GB:

        copy       delete
run 1   26.687s    22.336s
run 2   38.336s    22.466s
run 3   44.711s    20.473s
run 4   41.269s    22.721s
run 5   41.592s    26.499s

Tutaj opóźnienie występuje prawie za każdym razem.

Myślałem o usterce sprzętowej, ale uruchomiłem się z monitem ratunkowym, ręcznie zamontowałem jeden z dysków i wykonałem ten sam test. Tym razem wyniki były całkowicie spójne i szybkie.

Wszelkie myśli byłyby mile widziane, ponieważ jestem zagubiony.

PeterD
źródło

Odpowiedzi:

3

Masz 2 GB pamięci RAM? 600 MB w .6s to 1 GB / s, co jest bardzo szybkim dyskiem. System korzysta z zapisu wstecznego, aby szybciej przywrócić kontrolę nad procesem użytkownika, ale gdy w systemie brakuje buforów, proces użytkownika musi czekać na zapis danych.

Również usuwanie jest często intensywną operacją dla jąder, która nie daje procesom użytkownika zbyt wiele możliwości do uruchomienia

fstx
źródło
1
Czas zależy również w dużej mierze od tego, jak „daleko od siebie” znajdują się dwa pliki na dysku. Podczas kopiowania zi na te same dyski, głowice muszą przesuwać się z jednego pliku do drugiego. To szczęście, jak daleko są od siebie na drodze. (Ponadto można częściowo anulować współczynnik opróżniania bufora, wykonując syncprzed testem i wykonując syncpóźniej, włączając czas synchronizacji po teście w czasie wykonywania testu.)
David Schwartz,
Próbowałem upuścić pamięć podręczną dysku między każdym uruchomieniem (synchronizacja; echo 3> / proc / sys / vm / drop_caches) i dzięki temu operacje usuwania były prawie całkowicie spójne ([email protected]). Operacja kopiowania wciąż się zmienia (~ 30–60 s), ale może to być geometria. Dzięki za wyjaśnienie obu!
PeterD