Как автоматически прибивать подвисшие процессы?

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
ps
проходил мимо

Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение ps » 2008-02-06 15:27:05

Есть веб-сервер на базе FreeBSD. Регулярно под апачем подвисают скрипты. Как можно сделать так, чтобы они прибивались? Сейчас регулярно запускаю самописный скрипт, который через команду ps смотрит подвисшие процессы, и прибивает их. Можно как-то настроить ОС, чтобы она сама прибивала такие процессы по достижению некоего процессорного времени?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение zingel » 2008-02-06 15:39:48

Настроить login.conf для пользователя www
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35071
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение Alex Keda » 2008-02-06 15:41:58

проблематично....
например не работает при php в режиме фаст-цги....
Убей их всех! Бог потом рассортирует...

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение zingel » 2008-02-06 15:45:52

как варианта по крону делать, но я думаю есть варианты с suexec
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35071
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение Alex Keda » 2008-02-06 15:47:44

нету...
даже в стартовом скрипте через лимитс пробовал ставить - не действует....
Убей их всех! Бог потом рассортирует...

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение zingel » 2008-02-06 15:50:45

едрёна кочерыга, тогда только по-крону - мега скриптом......
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение ProFTP » 2008-05-04 0:14:16

как это делаетьсмя? :twisted: :P
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение zingel » 2008-05-04 1:27:33

не прошло и полгода....
ну вот как-то так:

Код: Выделить всё

mkdir -p /usr/local/scripts/ && cd /usr/local/scripts/; touch parser.sh
vi parser.sh

Код: Выделить всё

#!/usr/local/bin/bash

while true;
do

ps -auxx | grep httpd| grep  handling | awk '{print $13}' | sort | uniq -c | sort > tt

cat tt | tail -n 1 | awk '{print $1}' > rr

File=rr

{

read line1

} < $File
q
echo "SCUKO:"  $line1

if [[ $line1 -gt 7 ]]
then

cat tt | tail -n 1 | awk '{print $2}' ; echo " - GRUZILO!"

else

echo "OH YES!OH YES!"

fi

sleep 3

done;

Код: Выделить всё

chmod +x parser.sh
засовываем в крон

Код: Выделить всё

crontab -e

Код: Выделить всё

*/5 * * * * /usr/local/scripts/parser.sh
Вот только для этой штуки неплохобы делать renice, ну это уже другим скриптом и это совсем другая история, вернее страшная сказка на ночь, сказка про зомби.
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение ProFTP » 2008-06-07 16:09:13

а зомби как прибивать?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение zingel » 2008-06-07 20:12:13

kill -9
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение ProFTP » 2008-06-07 22:49:23

сенксЮ надо будет написать срикпт
если апаче и пхп не от инита работает...?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение f_andrey » 2008-06-08 0:30:42

Рекомендую взглянуть в сторону новых солярисов там они в службах SMF как раз реализуют этот функционал +отслеживание зависимости служб, жесткое, мягкое при старте при работе. технология новая и весьма навороченная но весьма любопытная. и революционная, или это эволюция
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение zingel » 2008-06-08 1:22:06

Вот таких вещей не нужно делать:

Код: Выделить всё


int main(void) {
        int i;
        if (!fork()) {
                _exit(0);
        }
вот и вся эволюция.
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение ProFTP » 2008-06-19 2:58:47

zingel писал(а):не прошло и полгода....
ну вот как-то так:

Код: Выделить всё

mkdir -p /usr/local/scripts/ && cd /usr/local/scripts/; touch parser.sh
vi parser.sh

Код: Выделить всё

#!/usr/local/bin/bash

while true;
do

ps -auxx | grep httpd| grep  handling | awk '{print $13}' | sort | uniq -c | sort > tt

cat tt | tail -n 1 | awk '{print $1}' > rr

File=rr

{

read line1

} < $File
q
echo "SCUKO:"  $line1

if [[ $line1 -gt 7 ]]
then

cat tt | tail -n 1 | awk '{print $2}' ; echo " - GRUZILO!"

else

echo "OH YES!OH YES!"

fi

sleep 3

done;

Код: Выделить всё

chmod +x parser.sh
засовываем в крон

Код: Выделить всё

crontab -e

Код: Выделить всё

*/5 * * * * /usr/local/scripts/parser.sh
Вот только для этой штуки неплохобы делать renice, ну это уже другим скриптом и это совсем другая история, вернее страшная сказка на ночь, сказка про зомби.
извините, а что делает данный скрипт?? он по-моиму только паять прилично?

я хотел чтобы автоматически прибивал процессы, точнне чтобы быстрее освобождал память тем процесам которые уже не работают, но наверное так нельзя...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение paradox » 2008-06-19 3:08:13

этот скрипт топик мастеру
или ты думал это тебе?=)
скрипт делает то о чем топик

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение ProFTP » 2008-06-19 3:18:34

только результата нету, load averages до 20 доскакивает
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Как автоматически прибивать подвисшие процессы?

Непрочитанное сообщение zingel » 2008-06-19 5:22:48

снятие нагрузки с сервера, это целая наука, за один раз ничего ен получится, нужно сидеть и выяснять что грузит, какие процессы, почему, что именно они хотят от жесткого диска, как быстро отдается контент, проводить реверс-тюнинг сетевого стека, ядра, оптимизировать настройки ПО. Если хотите, я могу посмотреть на Ваш сервер и сказать, что можно сделать, для этого нужно:

1)Связаться со мной
2)Дать мне доступ на сервер
Z301171463546 - можно пожертвовать мне денег