The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Использование процессора"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Оптимизация и Промышленные системы (Увеличение производительнсти)
Изначальное сообщение [ Отслеживать ]

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Использование процессора"  +/
Сообщение от parad (ok) on 04-Мрт-14, 00:53 
проверь для начала насколько утилизируется это самое ядро. узкое место диски никто не отменял. только-что попробывал один большой файл на ссд с флагом -9 - нагрузка на ядро 45%, - уперлось в ввод-вывод. тобишь бессмысленно параллелить. я бы даже сказал во вред.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Использование процессора"  +/
Сообщение от Serg (??) on 04-Мрт-14, 06:27 
> Система: 2 процессора по 4 ядра.

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

3. "Использование процессора"  +/
Сообщение от Andrey Mitrofanov on 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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Использование процессора"  +/
Сообщение от parad (ok) on 05-Мрт-14, 12:21 
андрюха, погугли мне рецепт мяса в горшочке. смотрю ты любишь за других гуглом пользоваться.
пока не утилизируется ядро на 100 процентов - распараллеливать не то что бессмысленно - вредено.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

7. "Использование процессора"  +/
Сообщение от John (??) on 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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Использование процессора"  +/
Сообщение от fantom (ok) on 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 файлов...
:)

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру