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 ★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.