The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"zombie процесы"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"zombie процесы"  
Сообщение от vova07 email(ok) on 24-Мрт-06, 16:55 
У меня комадна top показивает что постоянно с частотой 3-4 сек.  появляются zombie-процесы (на 1-2 сек.) ...
как взнать что ето за процесы ??????
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "zombie процесы"  
Сообщение от onorua (ok) on 25-Мрт-06, 21:41 
>У меня комадна top показивает что постоянно с частотой 3-4 сек.  
>появляются zombie-процесы (на 1-2 сек.) ...
>как взнать что ето за процесы ??????


У этого же top есть возле процесса статус, если мне память не изменяет - это Z. сделай man top, и узнаешь;)

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "zombie процесы"  
Сообщение от Danila email(??) on 27-Мрт-06, 15:28 
>У меня комадна top показивает что постоянно с частотой 3-4 сек.  
>появляются zombie-процесы (на 1-2 сек.) ...
>как взнать что ето за процесы ??????

Отвечу в меру своих познаний...

Ну, на первый взгляд можно сказать, что ничего страшного нет.
Процесс становится Зомби только для того, чтобы его родитель мог получить код завершения потомка (если родителю вообще это нужно). Когда дочерний процесс завершается система держит его в состоянии Z и посылает сигнал SIGCHLD родителю. У родителя должен быть обработчик этого сигнала, в котором он в цикле вызывает функцию waitpid пока не обработает всех своих зомбей (сигналы посланные системой не буферизуются, поэтому приходится делать это в цикле). После этого система отпускает зомби-процессы в их процессный рай :)

Если родитель сам уже завершился, но зомби остались, то система, скрипнув зубами, разбирается с ними сама - наплевав на код их завершения (который ей вовсе безразличен) просто завершает их. Этит занимается процесс init с PID=1.


Так что в Вашем случае - вполне допустимо появление зомбей на несколько секунд. это означает, что процесс-родитель чем-то занят и просто не успел еще обработать сигнал SIGCHLD и завершившиеся потомки ждут в состоянии Z.

Возможно это происходит потому что система не слишком быстрая или перегружена? Или главный процесс (родитель) написан кривовато, из-за чего не успевает быстро реагировать на завершение своих детей? Вопрос к разработчикам.

Теоретически это может быть потенциальной уязвимостью системы, если например некий процесс-сервер в результате DoS атаки породит множество дочерних процессов, завершение которых не сможет оперативно отрабатывать. Это приведет к истощению системных ресурсов и завалит всю систему.

Команда ps axf | grep -B1 -P "\s+Z\s+" покажет дерево процессов (кто кем порожден) и отфильтрует зомбей вместе с их тормознутым родителем.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру