[root@nasturbace #]$ time dd if=/dev/sda bs=1M count=160 skip=4000000 | gzip -1nebo9 -c | dd of=/dev/null
tak jestli jde o kompresi prázdného místa, je lepší použít jako vstup prostě /dev/zero, který ty nuly bude dávat rychleji než disk
time dávat nemusíte, nové dd má status=progress, nebo jde použít pipebench a podobné
gzip -c nemusí být, ty trubky sám detekuje
a dd of=/dev/null taky nemusí být, stačí prostě > /dev/null
A ten mnou navrhovaný pigz nebo zstd se vám nelíbí kvůli čemu? Je to několikrát rychlejší. Na prázdných datech:
dd if=/dev/zero bs=1M status=progress count=1024 | gzip -1 > /dev/null
1039138816 bytes (1.0 GB, 991 MiB) copied, 14 s, 74.2 MB/s
dd if=/dev/zero bs=1M status=progress count=1024 | pigz -1 > /dev/null
1064304640 bytes (1.1 GB, 1015 MiB) copied, 6 s, 177 MB/s
dd if=/dev/zero bs=1M status=progress count=1024 | zstd -T0 -1 > /dev/null
806354944 bytes (806 MB, 769 MiB) copied, 2 s, 403 MB/s
A ještě nějaká rada, když chci aby byla utilizována maximální rychlost čtení i zápisu, vyplatí se to nějak "bufferovat do RAM", pokud by byl druhý(nebo i první) disk pomalejší? (S přihlédnutím, že občas se tam najde blok nul a tím pádem by se výstupní disk mohl chvíli flákat) . Že kdybych použil "mezi" pipami něco jako dd if | docasnybuffer14GBRAM |dd of.... (Vykládám to lapidárně)
myslím, že to nepomůže. nejpomalejší bude ta komprese, obzvlášť když tam necháte jednovláknový gzip. pomůže velký bs, ale to už máte 1M, to asi stačí