LINUX.ORG.RU

.sh скрипт, нагрузка на проц


0

0

Написал на днях для себя скриптик, чтобы imagemagick'ом все .cr2 (canon raw) файлы в папке в jpeg конвертил. Работает нормально, только вот сильно проц нагружает. от 50-90%. Плюс обычно много всего запущено - в результате ноут сильно греется...Да и просто тормоза начинаются.

Так вот, можно ли как-нибудь регулировать его? Пускай дольше конвертирует, но меньше нагружает. Допустим запускать скрипт с параметром каким-нибудь... Возможно?

★★★★★

а скрипт-то тут причём? imagemagick же конвертирует а не bash. Попробуй запускать

nice -10 convert

pupok ★★
()
Ответ на: комментарий от NekoExMachina

вроде бы приоритет наследуется от родителя. так что можно запустить скрипт с nice 10 и все дочерние процессы этого скрипта будут с nice 10. (если мне не изменяет память)

CyberTribe ★★
()
Ответ на: комментарий от CyberTribe

вроде правда

$nice -10 bash -c evince
$top -b |grep evince
 7744 pupok  30  10  195m  15m  11m S    0  0.4   0:00.11 evince
pupok ★★
()
Ответ на: комментарий от kovrik

ИМХО, nice не совсем то, что вам нужно, конечно другим процессам будет легче работать и ноут будет меньше тормозить. Но это приоритет, а не процент использования CPU, то есть imagemagick будет меньше "мешать" другим задачам, но все равно будет забирать всё свободное (idle) время процессора. А вам, насколько я понял, нужно именно, чтобы был idle.

Не знаю как сейчас, но раньше это реализовывалось только переодической остановкой/продолжнениме процесса с помощью сигналов SIGSTOP/SIGCONT. Была утилита cpulimit (которая так и работала). Либо ищите эту утилиту и, наверное, компилируйте её, либо при конвертации запускайте отдельный скрипт во время конвертации вида:

#!/bin/bash
while killall -STOP imagemagick ; do
usleep 500000
killall -CONT imagemagick
usleep 500000
done

mky ★★★★★
()
Ответ на: комментарий от CyberTribe

Тогда, если я не ошибаюсь, надо делать sha-bang вида
#!/usr/bin/nice -n 10 /bin/bash
?
И кстати, можно использовать renice на уже существующий процесс /bin/sh, если знать его pid -- тогда не прийдется прекращать работу для уменьшения количества тормозов.

NekoExMachina
()

nice не снижает нагрузку на процессор, она будет все равно максимально полной
nice всего лишь даст приоритет другим программам,

если нужно действительно чтобы был простой - то сделайте так как пишет mky

скрипт со sleep между выполнениями конвертера, хотя если используете изменение частоты процессора, то пикообразные нагрузки не лучший вариант, но с другой стороны вам же может помочь и принудительное снижение его частоты вручную

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

Смотря что больше напрягает человека. Если тормоза, то nice ему поможет (если нет большого дискового i/o, с этим не всегда всё главдко) Если нагрев, то sleep - решение. Итого лучше совместить sleep и nice/

CyberTribe ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.