powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как бы посмотреть причины defunct'ов процессов
13 сообщений из 13, страница 1 из 1
Как бы посмотреть причины defunct'ов процессов
    #34223722
alex_v13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запустил новую систему аля корпоративное хранилище документов. Сервер 2х Xeon 2.4, 4 ГБ памяти. В тестированиии было все нормально, а под нагрузкой в базе посыпались вот такие бяки:

postgres 3271 0.0 0.1 173956 ? ? Z 22:42 0:00 [postmaster] <defunct>

Сыпятся в числе 2-3 на 200-300 соединений.
Никаких ошибок в логах не наблюдается, хотя режим выставлен "логить все".

Система написана на java, работет под JBOSS с драйвером постгреса 8.1.407.

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

Косвенным признаком жопы служит рост load avrg до 15-20....
...
Рейтинг: 0 / 0
Как бы посмотреть причины defunct'ов процессов
    #34224071
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
200-300 сединенией это при использовании пула соединений?
...
Рейтинг: 0 / 0
Как бы посмотреть причины defunct'ов процессов
    #34224350
alex_v13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ChameLe0n200-300 сединенией это при использовании пула соединений?

Это на 200-300 фактических соединений.
В пуленых висит около 50.
...
Рейтинг: 0 / 0
Как бы посмотреть причины defunct'ов процессов
    #34224391
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
версия пг, ос?
...
Рейтинг: 0 / 0
Как бы посмотреть причины defunct'ов процессов
    #34224499
Funny_Falcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А помоему не стоит волноваться, если всё работает.
Просто отвалился коннект, процесс коннекта закончил работу, а главный процесс еще не успел сделать wait (ведь нагрузка loadavg 15-20).

Нагрузка - это проблема, а зомби - нет (если, конечно, их количество не начинает резко расти)
Зомби - это часть posix работы с процессами.
...
Рейтинг: 0 / 0
Как бы посмотреть причины defunct'ов процессов
    #34224748
alex_v13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
st_sergверсия пг, ос?

Debian 3.1
PostgreSQL 8.1.5

Funny_FalconА помоему не стоит волноваться, если всё работает.
Просто отвалился коннект, процесс коннекта закончил работу, а главный процесс еще не успел сделать wait (ведь нагрузка loadavg 15-20).

Нагрузка - это проблема, а зомби - нет (если, конечно, их количество не начинает резко расти)
Зомби - это часть posix работы с процессами.

Т.е. это просто те процессы которые не были вовремя закрыты, а не сдохли по тайм-ауту из-за каких-то внутренних ошибок?

Еще такой вопрос:

Может ли высокая загруженность сервера служить причиной того, что он не успевает отвечать на запросы - симптомы такие: в списке открытых коннектов бывает тусуется до 70-80 процессов в статусе IDLE, loadavrg дорастает до 20-30, а потом все нормально.... Процессы генерятся параллельно работающим с базой Apach+PHP. Своп не юзается, памяти Посгресу выделено нормально. Можно как-нить отследить кто тупит: клиент открывающий коннект, но не отправляющий запрос, или база не принимающая его из-за загрузки.. Других объяснений такого кол-ва процессов в статусе IDLE у меня нет...
...
Рейтинг: 0 / 0
Как бы посмотреть причины defunct'ов процессов
    #34224790
alex_v13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PS: Только что наблюдал ~120 IDLE коннектов при нагрузке в 3, так что это скорее всего проблемы клиентов или сети...
...
Рейтинг: 0 / 0
Как бы посмотреть причины defunct'ов процессов
    #34225770
alex_v13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все таки проблема не дает покоя:
по десять раз поменял все возможные настойки в конфиге, но остаются те же кучи висящих в IDLE Постгрессов, а загрузка сервера при этом то 15-20, то не более 2-3. iostat говорит, что диск почти не юзается - по 200-300 кб/сек, ну 2-3 мб/сек макс. Клиентское же ПО дофига ждет ответов от базы, время выполнения банальных запросов типа SELECT * FROM table, по таблице в 10 тысяк записей - по 100-200 сек... Чо ваще с базой ? :) Первый раз такое вижу на Постгрессе хотя, работаю с ним уже лет 5.
...
Рейтинг: 0 / 0
Как бы посмотреть причины defunct'ов процессов
    #34226576
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Была подобная проблема. Всё указывало на apache+php. У тебя есть возможность остановить apache, и попробовать поработать с базой только из под JBoss?
...
Рейтинг: 0 / 0
Как бы посмотреть причины defunct'ов процессов
    #34226853
alex_v13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разделил схему на 2 Посгреса на разных серверах - часть осталась под Apache+PHP, другая под JBOSS. Посмотрим как будет себя вести.
Что же интересно делает такого JDBC-дравер, что так забивает других клиентов?
...
Рейтинг: 0 / 0
Как бы посмотреть причины defunct'ов процессов
    #34227058
Funny_Falcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТ.е. это просто те процессы которые не были вовремя закрыты, а не сдохли по тайм-ауту из-за каких-то внутренних ошибок?

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

Это система управления процессами в юникс (да и по-моему, posix вообще):
Главный процесс форканьем порождает дочерний. Дальше они живут более менее независимой жизнью.
Но если дочерний умирает раньше родительского, то запись о нем остаётся в ОС, пока родительский не осведомится -
по какой причине умер дочерний - с ошибкой или без?
Такие дочерние процессы называются зомби (о чем свидетельствует буковка Z после двух вопросиков. Они не занимают ресурсов, кроме записей о процессах (их максимальное число ограниченно где-то 8-ю тысячами)

Но из-за загрузки, главный не успел еще о них осведомиться, вот ты их и видишь!!!
...
Рейтинг: 0 / 0
Как бы посмотреть причины defunct'ов процессов
    #34228767
Jelis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex_v13Все таки проблема не дает покоя:
по десять раз поменял все возможные настойки в конфиге, но остаются те же кучи висящих в IDLE Постгрессов, а загрузка сервера при этом то 15-20, то не более 2-3. iostat говорит, что диск почти не юзается - по 200-300 кб/сек, ну 2-3 мб/сек макс. Клиентское же ПО дофига ждет ответов от базы, время выполнения банальных запросов типа SELECT * FROM table, по таблице в 10 тысяк записей - по 100-200 сек... Чо ваще с базой ? :) Первый раз такое вижу на Постгрессе хотя, работаю с ним уже лет 5.

А чего vmstat и top говорят? Насколько процессор загружен и, главное, кем? Если Постгрессом, то может в базе дело (типа там индексов забыли проставить в нужном месте, или запросы кривые, которые при тестах без такой нагрузки нормально себя вели)?
...
Рейтинг: 0 / 0
Как бы посмотреть причины defunct'ов процессов
    #34229859
alex_v13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmstat и top говорят, что все кеш зафигачен на 3 гига, и свап не юзается...
проц в момент 100 висящих IDLE не загружен - load avrg < 1.
Ситуация престранная, судя по всему тупят клиенты не отправляющие запросы...

Еще сделал логгинг запросов с длительностью > 1000 ms, потом прогоняю их из консоли - результататы по скорости отличаются в 10000 раз, т.е. по логам запрос идет 4000 ms, а из консоли - 0.4 ms... То ли база как-то очень медленно отдает данные клиенту, то ли канал соеденения жжот :)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как бы посмотреть причины defunct'ов процессов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]