Rychlost gzip můžete změnit pomocí --fast
--best
nebo -#
kde # je číslo mezi 1 a 9 (1 je nejrychlejší, ale menší komprese, 9 je nejpomalejší, ale větší komprese). Ve výchozím nastavení gzipruns na úrovni 6.
Důvod, proč tar zabere tak málo času ve srovnání s gzip, je ten, že při kopírování souborů do jednoho souboru je velmi malá výpočetní režie (což je to, co dělá). gzip na druhou stranu ve skutečnosti používá kompresní algoritmy ke zmenšení souboru tar.
Problém je v tom, že gzip je omezen (jak jste zjistili) na jedno vlákno.
Zadejte pigz, který může použít více vláken k provedení komprese. Příklad použití by byl:
tar -c --use-compress-program=pigz -f tar.file dir_to_zip
Na sesterském webu je pěkné stručné shrnutí volby --use-compress-program.
Zdá se, že používám jeden procesor na přibližně 100 %.
To znamená, že nejde o problém s výkonem I/O, ale že komprese používá pouze jedno vlákno (což bude případ gzip).
Pokud se vám podaří dosáhnout přístupu/shody potřebné k instalaci dalších nástrojů, pak 7zip také podporuje více vláken, aby bylo možné využít výhod vícejádrových procesorů, i když si nejsem jistý, zda se to vztahuje i na formát gzip, stejně jako jeho vlastní.
Pokud prozatím používáte pouze gzip a potřebujete komprimovat více souborů, můžete je zkusit zkomprimovat jednotlivě – tímto způsobem využijete více vícejádrového procesoru, když budete paralelně spouštět více než jeden proces. Dávejte si pozor, abyste to nepřeháněli, protože jakmile se přiblížíte kapacitě vašeho I/O subsystému, výkon prudce klesne (na nižší úroveň, než kdybyste používali jeden proces/vlákno), protože latence pohybů hlavy se stane významnou. úzké místo.