Rychlost filesystemu

Libor Chocholaty libor_ml1 na mts.cz
Úterý Srpen 29 12:46:39 CEST 2006


Petr Simek wrote:
> On Mon, 28 Aug 2006, Libor Chocholaty wrote:
>
>   
>> Nechapu, ja mam /dev/null docela rychly...
>>
>> # dd if=/dev/zero of=/dev/null bs=1024000 count=1000
>> 1000+0 records in
>> 1000+0 records out
>> 1024000000 bytes transferred in 0.006057 seconds (169063852878 bytes/sec)
>>     
>
> Mne tohle beha tak o polovinu pomaleji, ale to asi nebude ten problem.
>
>   
>> # dd if=/var/www/heaven/servis/OOo_2.0.3_Win32Intel_install_cs.exe
>> of=/dev/null bs=10240
>> 9486+1 records in
>> 9486+1 records out
>> 97145567 bytes transferred in 1.759777 seconds (55203342 bytes/sec)
>>     
>
> Kdyz pouziju dd a bs=10240 , tak soubor z disku do /dev/null zapisu zhruba
> stejne rychle jako Vy. Kdyz tim dd beru soubor z pasky tak do /dev/null
> mi to dava skoro dvakrat rychleji nez kdyz ho pisu na disk - to vse pri
> bs=10240 . Mimochodem ta paska je docela rychla - 84MB/s cteni v tomhle
> pripade.
>
> Pokud ovsem pracuju s delkou bloku 512B (coz se mi pro pasku hodi vic)
> tak uz to tak neni . dd uplne selhava, misto minuty trva prenost toho
> 2.5GB souboru pet minut , funguje pouze cat . A tomu to trva z pasky
> na disk asi 65 vterin ale z pasky do /dev/null 75 vterin.
>
> Je zvlastni jak ten ktery prikaz funguje/nefunguje podle pouzite velikosti
> bloku.
>   
Ja myslim, ze to je jasny. Pokud ctes z disku po vetsich kusech nez 
jeden sektor (512B), tak je to rychlejsi, protoze lip vyuzijes diskovou 
cache.
 To je stejny, jako kdyz si napises program na kopirovani souboru a 
delas to tak, ze prectes jeden byte, zapises jeden byte a tak dokola. V 
okamziku, kdy pouzijes pro cteni buffer vetsi nez 1 znak, tak se to 
zacne zrychlovat. Je to dane tim, ze disk je RAM (random access memory). 
Kdezto paska je sekvencni zarizeni, ktere dava data tak jak jdou pekne 
za sebou.

Libor


Další informace o konferenci Linux