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

Autor: Artur Gawryszczak (gawrysz_at_camk.edu.pl._!_!_!_)
Data: Wed 30 Oct 2002 - 12:38:46 MET


Radoslaw Sokol wrote:

> Kopiowanie w obrębie tego samego dysku zawsze będzie przebie-
> gało fatalnie, gdyż polega ono wyłącznie na beznadziejnym
> machaniu głowicami tam i z powrotem. Cache niewiele tu
> pomoże :) Istnieją jednak dyski z 8 MB cache.

Wyjątkowo się nie zgodzę z Tobą, Radku :-P Takie kopiowanie będzie
przebiegało fatalnie wyłącznie tak długo, jak długo jest realizowane
przez jakieś getchar()/putchar() (a najwyraźniej M$ tak to zrobił), bo
wtedy buforowanie w pamięci, jakie jest wykonywane, to pojedyncze
klastry. Kiedyś z ciekawości napisałem program, który to robił z buforem
i już przy 1MB bufora kopiowanie przebiegało zauważalnie sprawniej i
ciszej. Testowałem to na IBM DTTA z coś >400kB cache i jakoś nie widać
było, żeby Windowsowi ten cache pomagał. Trzaby odkurzyć programik i
potestować go na czymś z 2MB cache, albo i 8MB ...

Zresztą zróbmy test:
(wcześniej się pobawiłem jakimś innym katalogiem, coby z 0.5GB danych
przepuścić i przeczyścić bufory :-) )

0phoenix:~/work>time cat ToBackup/2Dwindrad/*/*/*/* > _2
real 1m41.071s
user 0m0.230s
sys 0m12.170s
0phoenix:~/work>ls -l _2
-rw-r--r-- 1 gawrysz wheel 1059261900 paź 30 12:13 _2

Czylo średni transfer ~20MB/s (kopiowanie 10MB/s; IBM DTLA 307045, po
remoncie ..., kontroler ATA33)

0phoenix:~/work>l ToBackup/2Dwindrad/*/*/*/* | wc -l
    581

Czyli "średnioprzeciętnie" pliki miały po 2MB i nie był to test na
transfer czysto sekwencyjny.

Wykresy z gkrellma pokazywały jasno, że odczyt i zapis nie zachodził
równolegle, a zresztą było słychać, tzn. nie bardzo było słychać rzężenia
głowicami :-) Na wydajności się traci dopiero jak leci parę kopiowań
równolegle.

-- 
Pozdrówka,
        Artur


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