Зомби процессы
Модераторы: SLEDopit, Модераторы разделов
-
Enforcer
- Сообщения: 99
- ОС: Debian GNU/Linux
Зомби процессы
Никак не могу толком понять про зомби процессы.
То есть, откуда они берутся - понятно. Не понятно только, страшно это или не стоит обращать внимания?
У всех разное мнение, поэтому не могу толком понять.
В процессе иногда проскакивает apache2 <defunct>.
Собственно, это и есть зомби.
Опытные админы, скажите, насколько страшны эти зомби и как вообще от них можно избавиться?
Debian 5, apache2.
То есть, откуда они берутся - понятно. Не понятно только, страшно это или не стоит обращать внимания?
У всех разное мнение, поэтому не могу толком понять.
В процессе иногда проскакивает apache2 <defunct>.
Собственно, это и есть зомби.
Опытные админы, скажите, насколько страшны эти зомби и как вообще от них можно избавиться?
Debian 5, apache2.
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Зомби процессы
Т.е. Вас интересуют "другие" разные мнения?
Не страшны, они лишь *очень* немного (несколько байт) потребляют памяти под структуру данных. Больше ничего. Избавится - нельзя до тех пор, пока родительский процесс не запросит код завершения процесса-зомби. Либо пока родительский процесс не умрёт.
-
Enforcer
- Сообщения: 99
- ОС: Debian GNU/Linux
Re: Зомби процессы
serzh-z, но ведь у некоторых такой беды нету.
У меня до этого был VDS, там такого не было.
В любом случае спасибо, большинство людей как раз и говорили что ничего страшного в этом нет.
Просто не прикольно быть белой вороной, когда у большинства этого нет, а у меня - есть.
У меня до этого был VDS, там такого не было.
В любом случае спасибо, большинство людей как раз и говорили что ничего страшного в этом нет.
Просто не прикольно быть белой вороной, когда у большинства этого нет, а у меня - есть.
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Зомби процессы
Перезагрузите сервер, и у вас снова их не будет. Ну или терпите :)
-
Enforcer
- Сообщения: 99
- ОС: Debian GNU/Linux
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
-
Enforcer
- Сообщения: 99
- ОС: Debian GNU/Linux
Re: Зомби процессы
Вот именно - редкое.
Поэтому и паникую.
А может быть причина в железе сервера?
То есть, железо хреновое/кривое/дурное?
-
sciko
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
-
loginrl103
- Сообщения: 11
Re: Зомби процессы
зомби процессы - бесхозные структуры описатели процесса, памяти жрут мало, единственный вред - болтаются в списке процессов при просмотре всякими top и ps, и (самое главное) занимают pid. я конечно сомневаюсь что у тебя число процессов плодится до 32 тысяч, поэтому можешь не волноваться насчёт зомби.
ps. возникают таки да - из-за кривых программ, когда родитель не дожидается завершения потомка и умирает...)
ps. возникают таки да - из-за кривых программ, когда родитель не дожидается завершения потомка и умирает...)
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Зомби процессы
Такое уж редкое ли.
Я вот когда монтирую по sshfs что-нибудь и соединение рвется, то потом довольно часто процесс (который sshfs user@...) просто невозможно убить (kill -9 от рута не помогает). Вдобавок еще подвисают, если запустить, df и fuser -km /точка/монтирования (как впрочем ls, umount и прочие утилитки).
И у процесса sshfs статус D по ps ax'у.
У меня это прямо таки настоящее бедствие.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Зомби процессы
SLEDopit писал(а): ↑23.04.2010 12:00Такое уж редкое ли.
Я вот когда монтирую по sshfs что-нибудь и соединение рвется, то потом довольно часто процесс (который sshfs user@...) просто невозможно убить (kill -9 от рута не помогает). Вдобавок еще подвисают, если запустить, df и fuser -km /точка/монтирования (как впрочем ls, umount и прочие утилитки).
И у процесса sshfs статус D по ps ax'у.
У меня это прямо таки настоящее бедствие.
D - это не зомби, это другое, это "uninterruptible sleep" - когда процесс висит в ожидании завершения операции ввода-вывода. Вот в этом случае процесс продолжает хавать как минимум память(то есть не просто структура в таблице процессов, а собственно вся память что была процессу отведена). Чтобы не вис df или ls и прочее... для nfs работает lazy umount (ЕМНИП umount -l или umount -l -f), c sshd - не помню чтобы проблемы были при отмонтировании, но я почти не пользовался таким маунтом.
-
neol
- Сообщения: 600
- ОС: Debian Stable
Re: Зомби процессы
Если он висит секунду-другую - это нормальное явление. Чайлд отработал свое и завершился, а родительский процесс в это время занят чем-то другим, в результате такой зомби несколько секунд висит в процессах, пока родитель не доберется до него. Если такие процессы висят долго и их много, тогда можно немножко попаниковать (:
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Зомби процессы
Когда родитель умирает, то зомби усыновляются процессом init.loginrl103 писал(а): ↑23.04.2010 09:48ps. возникают таки да - из-за кривых программ, когда родитель не дожидается завершения потомка и умирает...)
По правде говоря, удивляюсь, в который десяток раз уже эта тема мусолится тут.
-
loginrl103
- Сообщения: 11
Re: Зомби процессы
serzh-z писал(а): ↑23.04.2010 12:59Когда родитель умирает, то зомби усыновляются процессом init.loginrl103 писал(а): ↑23.04.2010 09:48ps. возникают таки да - из-за кривых программ, когда родитель не дожидается завершения потомка и умирает...)
По правде говоря, удивляюсь, в который десяток раз уже эта тема мусолится тут.
в теории - инит должен прибирать подбирать осиротевшие структуры, только не на всех ядра такое поведение замечал - на некоторых 2.6.2x зобми можут висеть неделями.
-
strah
- Сообщения: 283
- ОС: Freebsd, linux, Solaris.
Re: Зомби процессы
loginrl103 писал(а): ↑29.04.2010 16:40в теории - инит должен прибирать подбирать осиротевшие структуры, только не на всех ядра такое поведение замечал - на некоторых 2.6.2x зобми можут висеть неделями.
У меня в solaris 9 от utaudio, вроде(или от какого-то еще процесса sun ray server), помню, зомби довольно долго висели.
/earth: file system full
-
Obscurus
- Сообщения: 189
Re: Зомби процессы
А можно ли как-то предотвратить появление таких зомбей программным способом? Например, у нас есть cgi-скрипт, который должен запускать отдельный процесс для обработки чего-либо. Обработка идёт долго, минут по 10-15, то есть ожидать завершения смысла нет - клиент отвалится по таймауту через пару минут. Самое простое решение - fork()+exec(), но в этом случае родительский процесс помрёт заведомо раньше потомка. То есть зомби будут плодиться пачками, можно каким-то образом порождённый процесс оторвать/передать и тд?
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Зомби процессы
да. просто надо писать нормальные программы.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
anonymous.ru
- Сообщения: 614
Re: Зомби процессы
Можно, я разрешаю. Поставьте в родителе игнорирование на сигнал SIGCHLD (до порождения сына)
Если родитель умер - его осиротевшие дети не будут становиться зомби