URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID13
Нить номер: 878
[ Назад ]

Исходное сообщение
"Использование процессора"

Отправлено worsvch , 03-Мрт-14 22:25 
Система: 2 процессора по 4 ядра.
Нужно сжать в пределах 80 файлов, используя gzip. Что нужно сделать чтобы были задействованы одновременно все ядра процессора? На данный момент при использовании команды gzip * используется одновременно только одно ядро, остальные не задействованы.


Содержание

Сообщения в этом обсуждении
"Использование процессора"
Отправлено parad , 04-Мрт-14 00:53 
проверь для начала насколько утилизируется это самое ядро. узкое место диски никто не отменял. только-что попробывал один большой файл на ссд с флагом -9 - нагрузка на ядро 45%, - уперлось в ввод-вывод. тобишь бессмысленно параллелить. я бы даже сказал во вред.

"Использование процессора"
Отправлено Serg , 04-Мрт-14 06:27 
> Система: 2 процессора по 4 ядра.

можно использовать p7zip


"Использование процессора"
Отправлено aurved , 04-Мрт-14 09:34 
причем p7zip и lzma2 сжатие -- тогда все процы будут загружены



"Использование процессора"
Отправлено Andrey Mitrofanov , 04-Мрт-14 09:33 
> Система: 2 процессора по 4 ядра.
> Нужно сжать в пределах 80 файлов, используя gzip. Что нужно сделать чтобы
> были задействованы одновременно все ядра процессора? На данный момент при использовании
> команды gzip * используется одновременно только одно ядро, остальные не задействованы.

https://www.gnu.org/software/parallel/man.html#example__proc...

EXAMPLE: Processing a big file using more cores

To process a big file or some output you can use --pipe to split up the data into blocks and pipe the blocks into the processing program.

If the program is gzip -9 you can do:

cat bigfile | parallel --pipe --recend '' -k gzip -9 >bigfile.gz


"Использование процессора"
Отправлено aurved , 04-Мрт-14 09:54 
а есть еще не gzip, а pigz, этот архиватор имеет вот такую интересную опцию:

-p --processes n
              Allow up to n processes (default is the number of online proces-
              sors)


"Использование процессора"
Отправлено parad , 05-Мрт-14 12:21 
андрюха, погугли мне рецепт мяса в горшочке. смотрю ты любишь за других гуглом пользоваться.
пока не утилизируется ядро на 100 процентов - распараллеливать не то что бессмысленно - вредено.

"Использование процессора"
Отправлено John , 05-Мрт-14 15:47 
> Система: 2 процессора по 4 ядра.
> Нужно сжать в пределах 80 файлов, используя gzip. Что нужно сделать чтобы
> были задействованы одновременно все ядра процессора? На данный момент при использовании
> команды gzip * используется одновременно только одно ядро, остальные не задействованы.

find /path_to/files_nees_gzip -type f [-name '*.txt'] | xargs -n 1 -p 8 gzip

# find
# -name '*.txt' - опционально, чтобы отобрать нужные файлы

# xargs
# -n 1 - передавать команде gzip по одному аргументу
# -p 8 - использовать 8 (или указать сколько Вам надо) экземпляров gzip

# для сложных случаев, с непредсказуемым именами файлов/каталогов (т.е. созданными "обычными пользователями") можно использовать вариант
find /path_to/files_nees_gzip -type f [-name '*.txt'] -print0 | xargs -0 -n1 -p 8 gzip


"Использование процессора"
Отправлено Mua , 09-Май-15 22:51 
> Система: 2 процессора по 4 ядра.
> Нужно сжать в пределах 80 файлов, используя gzip. Что нужно сделать чтобы
> были задействованы одновременно все ядра процессора? На данный момент при использовании
> команды gzip * используется одновременно только одно ядро, остальные не задействованы.

На основании инфы в этой ветке и гугла получилось вот что:

tar -C 2015-04-24\ WindowsBackup -cf - . | parallel --pipe --recend '' -k gzip > \!.tar.gz

Грузит все ядра.


"Использование процессора"
Отправлено fantom , 12-Май-15 10:04 
>> Система: 2 процессора по 4 ядра.
>> Нужно сжать в пределах 80 файлов, используя gzip. Что нужно сделать чтобы
>> были задействованы одновременно все ядра процессора? На данный момент при использовании
>> команды gzip * используется одновременно только одно ядро, остальные не задействованы.
> На основании инфы в этой ветке и гугла получилось вот что:
> tar -C 2015-04-24\ WindowsBackup -cf - . | parallel --pipe --recend ''
> -k gzip > \!.tar.gz
> Грузит все ядра.

zip <1 file> & zip <2 file> & zip <3 file> & .....
и так все 80 файлов...
:)