Proč dd používá 4kb bloky a sníží výrazně rychlost?

macík

Když přes dd kopíruji z flešky do dev/null, proč to kopíruje po 4Kb Blocích?
Kód: [Vybrat]
dd if=/dev/disk3s1   (conv=osync / sync / nic  /// nebo bs=1m)  of=/dev/null

iostat: (druhý sloupec je fleška! : 4KB )
záhlaví:
KB/t,  tps , MB/s --- KB/t,  tps , MB/s
  240.00    1  0.23     4.00 6154 24.04
  252.00    2  0.49     4.00 6120 23.90
  190.00    4  0.74     4.00 6129 23.94
  256.00    1  0.25     4.00 6121 23.91
   88.53   15  1.30     4.00 6156 24.05
  167.33    6  0.98     4.00 6118 23.90
Tedy při 6000iops po 4kB to dá slabých 25 MB/s. Zatímco normálně kopíruji takto:
Kód: [Vybrat]
416.30  266 108.33   993.72  100 96.85 Tedy  1GB soubor se přečetl za 10 sekund, rychlost 97 MB/s.

Kde je problém? Proč dd tam dává 4kB. Jsou nějaké další volby, které jsem zapomněl?
« Poslední změna: 24. 10. 2018, 16:53:57 od Petr Krčmář »


Kit

Utilita dd je z historického důvodu optimalizována pro použití s pevnými disky. Pokud ti velikost bloku nevyhovuje, zvol si jinou.

L.

Hele, když ti někdo řekne, že to máš dát do /dev/null, tak to neber doslova. To znamená, že to máš smazat!

Sten

Když přes dd kopíruji z flešky do dev/null, proč to kopíruje po 4Kb Blocích?

Protože 4 KiB je velikost paměťové stránky na Linuxu. dd neumí poznat, která velikost bloku je ideální.

Hele, když ti někdo řekne, že to máš dát do /dev/null, tak to neber doslova. To znamená, že to máš smazat!

dd do /dev/null se používá pro testování rychlosti čtení ;)

macík

Re:Proč dd používá 4kb bloky a sníží výrazně rychlost?
« Odpověď #4 kdy: 03. 11. 2018, 22:20:32 »
a co tedy? mám si kvůli tomu přes hdiutil dělat nový ramdisk? Nebo na pomalé x2 NVME? (jen 2GBps) Když nechci opotřebovávat flash paměti a HDDčko se 140MB/s je mi pomalé


Re:Proč dd používá 4kb bloky a sníží výrazně rychlost?
« Odpověď #5 kdy: 03. 11. 2018, 22:47:59 »
a co tedy? mám si kvůli tomu přes hdiutil dělat nový ramdisk?

naučiť sa použiť copy & convert, ktorý nemohol mať  skratku cc, lebo tú už mal C compiler. A tak dostal dd, lebo copy and convert sa v rukách amatéra mení na Disk destroyer...

ide o parametre black size skrátene bs
napr.

dd if=/dev/sda5 of=/dev/null bs=4096000000

me vakérav

Re:Proč dd používá 4kb bloky a sníží výrazně rychlost?
« Odpověď #6 kdy: 03. 11. 2018, 23:04:59 »
On ještě někdo používá dd? V čem je to lepší než
Kód: [Vybrat]
pv vstup > výstup což je jedna intuitivnější, jednak to má pěkné rozhraní a hlavně se nemusím starat o hromadu zbytečných parametrů (viz velikost bloku)?

diktor magic landtern

Re:Proč dd používá 4kb bloky a sníží výrazně rychlost?
« Odpověď #7 kdy: 03. 11. 2018, 23:21:34 »
Tento bs?
Kód: [Vybrat]
bs=1m
Ten nestačil?

Jenda

Re:Proč dd používá 4kb bloky a sníží výrazně rychlost?
« Odpověď #8 kdy: 04. 11. 2018, 01:01:18 »
Moje dd bs=1m odmítne s "invalid number". bs=1M funguje a podle očekávání je pak čtení rychlejší.

Jenda

Re:Proč dd používá 4kb bloky a sníží výrazně rychlost?
« Odpověď #9 kdy: 04. 11. 2018, 04:20:21 »
Mimochodem zvážil bych, zda nepoužít obyčejný cat nebo třeba pv (ukazuje průběh samo od sebe, na rozdíl od dd, kterému se musí posílat USR1, nebo se to musí hackovat přes /proc/pid/fdinfo), a nechat volbu ideální velikosti bloku na systému/glibc. Většinou to funguje dobře.

PeterK

Re:Proč dd používá 4kb bloky a sníží výrazně rychlost?
« Odpověď #10 kdy: 04. 11. 2018, 07:12:55 »
Jenda, novsie dd to uz maju poriesene volbou
Kód: [Vybrat]
status=progress

PeterK

Re:Proč dd používá 4kb bloky a sníží výrazně rychlost?
« Odpověď #11 kdy: 04. 11. 2018, 07:18:08 »
macik, priznam sa ze tomu tvojmu vypisu nerozumiem ale dd odjakziva pouzivalo default blok velkosti 512 bajtov, cokolvek ine bolo treba nastavit bs=xyz pripadne separatne ibs= obs=