LINUX.ORG.RU
ФорумAdmin

помощь забывающим про команду nice


0

0

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


> cat > /usr/sbin/renice.sh
#!/bin/bash
# renice user cpu-burning processes, uid=2005 - special user

ps ar -o uid=,bsdtime=,nice=,pid= |awk '{ t=strtonum($2); if ( $1 >= 500 && $1 != 2005 ) if ( t >= 15 && $3 < 19 ) system("renice 19 "$4); else if ( t >= 5 && $3 < 15 ) system("renice 15 "$4) }'
^D

добавляем строку в /etc/crontab:
...
* * * * * root /usr/sbin/renice.sh

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

★★

кто не понял: естественно это актуально для счётных задач работающих не по одному часу и дню, писалось для front-end машины, поскольку некоторые усеры запускают задания прямо на ней вместо рабочих нод, а бороться с усерами административно никакого желания нет

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

Ну мы с этой проблемой боролись просто - вместо /opt/pgamess запускается /opt/pgamess.sh, а в нем просто запуск через nice -n 10.

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

ещё проще в логин-скрипты добавить ренайс самого себя, я так давно делал ;), здесь задача была снизить найс только усерским процессам очень голодным к цпу, не в ущерб редакторам/шелам

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

да, только есть одна закавыка, если job пускается через at daemon (а так часто и происходит), то session отсутствует и лимиты не действуют (логин-скрипты тоже), поэтому мой костыль это самый простой способ борьбы с пожирателями цпу, впрочем не идеальный, если джоб форкает потомка-worker'а работающего пять минут каждые пять минут, то скрипт бесполезен, но с такими клиническими случаями (а они не возникнут, потому что это уже криминал) я буду бороться уже тем же limits.conf ;)

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

и как водится наипался с ps, вместо 'ps ar ...' надо писать 'ps -A r ...'

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