Интересно, что на моем промежуточном сервере, когда я запускаю ps aux, он зависает. Он выводит список процессов и перестает отвечать. Проверил, достаточно ли оперативной памяти (1 ГБ).
Когда я запускаю команду top, мне кажется, что это нормально, но мне интересно, что есть один зомби-процесс. Что это такое? Кто-нибудь может объяснить?
top - 11:00:29 up 3:53, 2 users, load average: 51.75, 50.52, 45.38
Tasks: 79 total, 1 running, 77 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1747660k total, 603572k used, 1144088k free, 12644k buffers
Swap: 917496k total, 0k used, 917496k free, 97732k cached
Спасибо
Если в Linux, запустите Strace на пс чтобы увидеть, какие системные вызовы он вызывает, и вы потенциально можете увидеть, на какой из них он висит:
$ strace ps aux
Если вы используете другую систему Unix-y, вы бы использовали ферма или dtruss.
Учитывая, что у вас нагрузка больше 50, но процессор на 100% простаивает, я бы посмотрел на ввод-вывод. Похоже, компьютер ожидает, пока диски или сеть вернут данные, прежде чем он сможет продолжить.
Попробуйте использовать iotop, чтобы узнать, что это блокирует. Это может быть поездка на выезде.
Подобное поведение также возможно, если ваш компьютер настроен на разрешение имени / группы и аутентификацию для внешнего ресурса, и этот ресурс недоступен. В этом случае было бы полезно проверить конфигурацию PAM и любые соответствующие службы, такие как DNS, LDAP, NIS.
Гм ... ваша средняя нагрузка показывает, что что-то ДЕЙСТВИТЕЛЬНО потребляет ввод / вывод или процессор. Ваш жесткий диск ломится? Вялый ответ? Средняя загрузка 51 - это не совсем нормально.
Зомби - если процесс порождается другим процессом и завершается, он должен снова быть получен родительским процессом. Если родитель упал или исчез, осиротевший процесс превращается в зомби. По сути, это процесс в таблице задач, который не использует ресурсы и ничего не делает, но теперь об этом должен позаботиться процесс init. Их действительно невозможно очистить без перезагрузки, но обычно они ничего не повредят. Теперь, если у вас много зомби, у вас есть проблема; процесс с ошибкой, проблема с ресурсами, что-то не работает должным образом. Однако один или два зомби не снимают фильм Ромеро.
Уточнение. Я использовал термин «сирота», но педантичный человек указал бы на разницу между процессом-сиротой и зомби. Сироты все еще работают, в то время как зомби ничего не делает, он не использует ресурсы, кроме записи в таблице процессов. И я не уверен, что init берет процесс зомби. Я могу ошибаться в этом (Предполагается, что Init заботится о потерянных процессах). В любом случае, если у вас не появляется много зомби, один или два в системе обычно не являются проблемой.
Вау, судя по максимальному результату, ваша нагрузка смехотворно высока. Если у вас не более 50 процессоров, это слишком много. Однако процессоры ничего не делают:
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Похоже, у вас проблема с оборудованием. Что дает выход dmesg
сказать тебе?
ps aux
один раз выводит список процессов и завершает работу. Периодически не обновляется вроде top
делает.
Процесс «зомби» - это процесс, который завершил выполнение, но все еще имеет запись в таблице процессов. Эта запись по-прежнему необходима, чтобы позволить процессу, запустившему процесс (теперь зомби), прочитать его статус выхода.