LINUX.ORG.RU
решено ФорумAdmin

килять 100% cpu бинарники из баша

 , , , ,


1

1

есть ли какой-то стандартный способ
подход
как килять процесс который ест 100% cpu?

могу конечно навелосипедить на баше

★★★★★

Последнее исправление: smilessss (всего исправлений: 2)
Ответ на: комментарий от rupert

У него какие-то бинарники (которых он наплодил целых 10000) выходят из под контроля и начинают планировать побег с компьютера и попытки добраться до него (автора темы). Он срочно придумывает способ как их ловить и убивать, пока они не успели сделать своё чёрное дело, и ставить вместо убитых новые ещё чистые. Но, судя по теме, это требуется делать чуть ли не каждую секунду.

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

На всякий случай оставлю это здесь. man ps:

CPU usage is currently expressed as the percentage of time spent

running during the entire lifetime of a process.

То есть ″ps u -p PID″ покажет среднее потребление CPU процессом за всё время его жизни, и, если процесс долго спал, а потом начал работать без ожидания, то ″ps″ не покажет 100%. В целом, и top в первый проход не очень хорошо показывает. ИМХО, ТСу лучше запускать top на два прохода и игорировать выхлоп первого прохода:

top -b -n2 -d 2 | awk 'BEGIN{A=-1} $1=="top" {A++} A'
mky ★★★★★
()
Ответ на: комментарий от smilessss

Я чуточку вдохновился темой и понаписал парсилку /proc/pid/stat и вот прикрутить lua хочу, дабы быстро быстро получать инфу и скриптом уже реализовывать например аналог oom_score но по отношению к загрузке ЦПУ, ну типа ставишь фильтр на имена процессов и среди них вычисляешь какие из них слишком долго долбят в сотку проц и там уже делаешь с ними чво хочешь далее. Ну так вот так как у тебя так сказать танк горящий и процессов за которыми надо глядеть тысячи, то сколько по времени отрабатывает твой скрипт и сколько при этом в целом процессов?

У меня сейчас (в холостую правда)

dron@gnu:~/ooc$ time ./procrule > /dev/null
real	0m0,009s
user	0m0,000s
sys	0m0,009s
dron@gnu:~/ooc$ 
dron@gnu:~$ top -b -n 1 | wc -l
289
dron@gnu:~$

Это где-то получение инфы о 29000 процессов в секунду. Ну допустим ещё не дописано + отработка скрипта пользовательской логики до 14000 просядет, ну плюс быдлокод до 10000 процессов в секунду, но спущусь с небес жизнь боль так что делим ещё пополам. Так что повторю вопрос, сколько твой скрипт обрабатывает процессов и за какое время =) Мне интересно :3

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

мне время не критично
у меня оно по крону запусается раз в минуту
сделано для того чтобы килять то, что подвисло
там подвисает от силы 1-2 бинаря в день
от массовых зависаний бинарей никакой sh не спасёт

smilessss ★★★★★
() автор топика