The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"zombie процесы"
Отправлено Danila, 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+" покажет дерево процессов (кто кем порожден) и отфильтрует зомбей вместе с их тормознутым родителем.

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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