Re: Wydajność urządzeń - ale tak bardziej praktycznie

Autor: Radoslaw Sokol (rsokol_at_magsoft.com.pl)
Data: Tue 05 Nov 2002 - 10:51:54 MET


Hi,

Artur Gawryszczak wrote:
>
> Pomiarami bawiłem się niegdyś na W98, w NT faktycznie mogło być to
> zrobione profesjonalniej. Między wykorzystaniem getchar()/putchar() (a
> właściwie fgetc/fputc) a fgets/fputs na buforze wielkości sektora, lub
> kilku sektorów nie było różnicy ani w prędkości kopiowania, ani w

Pamiętaj, że fgetc/fputs korzystają wewnętrznie z buforowania,
więc nie zauważysz wielkiej różnicy między pobieraniem 512
razy pod rząd jednego bajta a pobieraniem 512 bajtów na raz.
A przynajmniej nie powinieneś zauważyć. W DOSie na przykład
różnica była niesamowita.

> głośności rzeźbienia głowicą. Przy buforze rzędu 1MB lub więcej dysk
> stanowczo cichł, a prędkość rosła.

Bo tutaj już przekroczyłeś rozmiar wewnętrznych buforów
libc i systemu. Do tego wymuszałeś odczyt dużegi bloku
danych, zamiast korzystania z ograniczonego bufora
read-ahead.

> 8MB bufor dla pojedynczego kopiowania po partycji to już jest
> przyzwoicie, bo nawet przy najszybszych dyskach to jest zaledwie ze 6
> dłuższych ruchów głowicy na sekundę na zdefragmentowanym pliku. Przy

Ale masz tu do wyboru: albo zatykać pamięć operacyjną i
zmniejszać szansę innych aplikacji na skorzystanie z dysku,
albo poprawić wielozadaniowość i zmniejszyć wykorzystanie
RAMu kosztem wydajności operacji dyskowych wymagających
wielu ruchów głowicy. Coś za coś.

> Oj straszne rzeczy wypisujesz. Jak to dobrze, ze ja ostatnio mam do
> czynienia głównie z Ext2/Ext3, nawet po NFS-ie (100Mbit) nie ma takich
> cyrków :-)

Robiłem eksperymenty z rozmiarem bufora i NTFSem z nastę-
pującymi wynikami:

 - duży bufor (wymuszone 32 MB): wielozadaniowość operacji
   dyskowych cierpi straszliwie jak to opisałem w poprzednim
   poście, wydajność dysku jednak troszkę rośnie przy dostępnie
   tylko jednej aplikacji na raz

 - mały bufor (wymuszone 8 MB): wydajność dla pojedynczej
   aplikacji niewiele mniejsza, zauważalnie mniejsza wydajność
   operacji typu "kopiowanie między partycjami", ale zauwa-
   żalnie lepsza wielozadaniowość operacji dyskowych (apli-
   kacje nie zatykają się na tak długo przy jednoczesnym
   dostępie do dysku)

Wnioski eksperymentu sż nawet zgodne z zaleceniami MS: wielkość
bufora radzą oni dobierać z dokładną kontrolą wpływu rozmiaru
bufora na działanie konkretnych aplikacji wykonujących konkretne
operacje. Ostrzegają też, że zbyt duży bufor może pogorszyć
wydajność operacji dyskowych przy jednoczesnym dostępie do
dysku przez wiele aplikacji.

-- 
|""""""""""""""""""""""""""""""""""""""""""""""""""""""""""|
| Radosław Sokół  |  mailto:rsokol_at_magsoft.com.pl          |
|                 |  http://www.grush.one.pl/              |
\................... ftp://ftp.grush.one.pl/ ............../


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 01:52:25 MET DST