стиснути великі файли на linux


0

Я отримав декілька великих файлів, використовуючи команду

mysql> select * into outfile ...

наприклад, dump_news.sql, dump_weibo.sql, dump_report.sql ...

Загальний розмір - близько 7.6G, я використовую команду

tar -zcvf dump.tar.gz dump_*

на Linux, щоб стиснути вище файли, однак це займає близько 4 годин. Це довго. Я тестував інструмент bzip2, він займає більше часу, але розмір стисненого файлу менше. Так що я хочу знати, чи є інструмент для мене, щоб закінчити стиснення швидше.


1
Паралельний gzip: zlib.net/pigz Паралельно bzip2: compression.ca/pbzip2
Piskvor

зробити gzip, має бути швидше
Satya

Відповіді:


2

Кілька місяців тому мені довелося стиснути весь свій домашній каталог, тому я зробив bash-скрипт, який запускав tar в декількох процесах і стежив за кількістю процесів, так що завжди було 6 відразу (у мене 4 ядра, тому 6 потоків був так, що він міг стиснути, чекаючи iowait, оскільки я ставив його на USB на мій жорсткий диск).

Мій сценарій тут: https://gist.github.com/3989700

Якщо змінити вихідну папку на потрібне вихідне місце, поставте всі файли sql в ту ж саму папку, що й сценарій, дайте їм виконувані дозволи, і запустіть її з терміналу, він повинен стиснути файли.

Ви також можете змінити кількість потоків, які вона виконує, щоб відповідати вашим власним процесорам.



1

По-перше, ви можете прийняти трохи менше стиснення для набагато більшої швидкості. Ви можете пропустити виведення tar до gzip, а gzip - параметр рівня стиснення від -1 до -3 і подивитися, як це працює для вас.

По-друге, як зазначив @Piskvor, можна використовувати кілька процесорів і ядер pigz , які можуть бути використані в якості заміни gzip.

Якщо ви хочете швидкість, bzip2 (включаючи паралельні bzip2) буде рухатися в неправильному напрямку.


0

lzop швидше з точки зору процесора, ніж gzip (але отримує менше стиснення), хоча ви не зможете отримати занадто швидше, ніж через обмеження дискового вводу / виводу, якщо у вас немає твердотільного диска або масиву рейдів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.