Сколько слишком многих зомби (плохо)

В настоящее время работание top на моем LVM Linux я вижу 82 зомби. Затем после часа я вижу 128 зомби. Я понимаю, что зомби безопасны, но сколько слишком многие? Они могут начать вызывать проблемы?

4
задан 17 February 2019 в 07:57

1 ответ

Они не вызовут серьезных проблем, если они не начнут умножаться на более быстром уровне.


Эта статья является хорошим чтением:

- Что такое “процесс-зомби” на Linux?

enter image description here

Зомби являются в основном оставшимися битами мертвых процессов, которые не были очищены правильно. Программа, которая создает процессы-зомби, не программируется правильно – программы, как предполагается, не позволяют процессам-зомби слоняться поблизости.

Что такое процесс-зомби?

Для понимания, что процесс-зомби и что заставляет процессы-зомби появляться необходимо будет понять немного о том, как процессы работают над Linux.

Когда процесс умирает на Linux, он все не удален из памяти сразу — его дескриптор процесса остается в памяти (дескриптор процесса только берет крошечный объем памяти). Состояние процесса становится EXIT_ZOMBIE, и родитель процесса уведомляется, что его дочерний процесс умер с сигналом SIGCHLD. Родительский процесс, как затем предполагается, выполняет ожидание () системный вызов для чтения статуса выхода мертвого процесса и другой информации. Это позволяет родительскому процессу получать информацию от мертвого процесса. После ожидают (), назван, процесс-зомби полностью удален из памяти.

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

Утилиты как Системный монитор GNOME, главная команда и команда PS отображают процессы-зомби.

Опасности процессов-зомби

Процессы-зомби не израсходовали системных ресурсов. (На самом деле каждый использует очень крошечную сумму системной памяти для хранения ее дескриптора процесса.) Однако каждый процесс-зомби сохраняет свой идентификатор процесса (PID). Системы Linux имеют конечное число идентификаторов процесса – 32767 по умолчанию в 32-разрядных системах. Если зомби накопятся на очень быстром уровне – например, если неправильно запрограммированное программное обеспечение сервера создаст процессы-зомби при загрузке — то весь пул доступного PIDs в конечном счете станет присвоенным процессам-зомби, препятствуя тому, чтобы другие процессы запустились.

Однако несколько бродящих вокруг процессов-зомби не являются никакой проблемой – хотя они действительно указывают на ошибку со своим родительским процессом в Вашей системе.

Избавление от процессов-зомби

Вы не можете уничтожить процессы-зомби, как можно уничтожить нормальные процессы с сигналом SIGKILL — процессы-зомби уже мертвы. Примите во внимание, что Вы не должны избавляться от процессов-зомби, если у Вас нет большой суммы в Вашей системе – несколько зомби безопасны. Однако существует несколько способов, которыми можно избавиться от процессов-зомби.

Один путь путем отправки сигнала SIGCHLD в родительский процесс. Этот сигнал говорит родительскому процессу выполнять ожидание () системный вызов и очищать его детей зомби. Отправьте сигнал с командой уничтожения, заменив pid в команде ниже с PID родительского процесса:

kill -s SIGCHLD pid

Однако, если родительский процесс не будет запрограммирован правильно и проигнорирует сигналы SIGCHLD, то это не поможет. Необходимо будет уничтожить или закрыть родительский процесс зомби. Когда процесс, который создал концы зомби, init, наследовал процессы-зомби и становится их новым родителем. (init первый процесс, запущенный на Linux при начальной загрузке, и присвоенный PID 1.) init периодически выполняет ожидание () системный вызов для чистки его детей зомби, таким образом, init быстро справится зомби. Можно перезапустить родительский процесс после закрытия его.

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

3
ответ дан 1 December 2019 в 09:59

Другие вопросы по тегам:

Похожие вопросы: