Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как бы посмотреть причины defunct'ов процессов
|
|||
|---|---|---|---|
|
#18+
Запустил новую систему аля корпоративное хранилище документов. Сервер 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.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2006, 20:54 |
|
||
|
Как бы посмотреть причины defunct'ов процессов
|
|||
|---|---|---|---|
|
#18+
200-300 сединенией это при использовании пула соединений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2006, 08:18 |
|
||
|
Как бы посмотреть причины defunct'ов процессов
|
|||
|---|---|---|---|
|
#18+
ChameLe0n200-300 сединенией это при использовании пула соединений? Это на 200-300 фактических соединений. В пуленых висит около 50. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2006, 10:33 |
|
||
|
Как бы посмотреть причины defunct'ов процессов
|
|||
|---|---|---|---|
|
#18+
версия пг, ос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2006, 10:45 |
|
||
|
Как бы посмотреть причины defunct'ов процессов
|
|||
|---|---|---|---|
|
#18+
А помоему не стоит волноваться, если всё работает. Просто отвалился коннект, процесс коннекта закончил работу, а главный процесс еще не успел сделать wait (ведь нагрузка loadavg 15-20). Нагрузка - это проблема, а зомби - нет (если, конечно, их количество не начинает резко расти) Зомби - это часть posix работы с процессами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2006, 11:10 |
|
||
|
Как бы посмотреть причины defunct'ов процессов
|
|||
|---|---|---|---|
|
#18+
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 у меня нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2006, 12:11 |
|
||
|
Как бы посмотреть причины defunct'ов процессов
|
|||
|---|---|---|---|
|
#18+
PS: Только что наблюдал ~120 IDLE коннектов при нагрузке в 3, так что это скорее всего проблемы клиентов или сети... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2006, 12:25 |
|
||
|
Как бы посмотреть причины defunct'ов процессов
|
|||
|---|---|---|---|
|
#18+
Все таки проблема не дает покоя: по десять раз поменял все возможные настойки в конфиге, но остаются те же кучи висящих в IDLE Постгрессов, а загрузка сервера при этом то 15-20, то не более 2-3. iostat говорит, что диск почти не юзается - по 200-300 кб/сек, ну 2-3 мб/сек макс. Клиентское же ПО дофига ждет ответов от базы, время выполнения банальных запросов типа SELECT * FROM table, по таблице в 10 тысяк записей - по 100-200 сек... Чо ваще с базой ? :) Первый раз такое вижу на Постгрессе хотя, работаю с ним уже лет 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2006, 16:53 |
|
||
|
Как бы посмотреть причины defunct'ов процессов
|
|||
|---|---|---|---|
|
#18+
Была подобная проблема. Всё указывало на apache+php. У тебя есть возможность остановить apache, и попробовать поработать с базой только из под JBoss? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 05:55 |
|
||
|
Как бы посмотреть причины defunct'ов процессов
|
|||
|---|---|---|---|
|
#18+
Разделил схему на 2 Посгреса на разных серверах - часть осталась под Apache+PHP, другая под JBOSS. Посмотрим как будет себя вести. Что же интересно делает такого JDBC-дравер, что так забивает других клиентов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 09:46 |
|
||
|
Как бы посмотреть причины defunct'ов процессов
|
|||
|---|---|---|---|
|
#18+
авторТ.е. это просто те процессы которые не были вовремя закрыты, а не сдохли по тайм-ауту из-за каких-то внутренних ошибок? Это те процессы, соединения с которыми успешно закрыты (по-таймауту или нет - неизвестно). Просто из-за большой загрузки главный процесс еще не успел выполнить wait для этих процессов. Это система управления процессами в юникс (да и по-моему, posix вообще): Главный процесс форканьем порождает дочерний. Дальше они живут более менее независимой жизнью. Но если дочерний умирает раньше родительского, то запись о нем остаётся в ОС, пока родительский не осведомится - по какой причине умер дочерний - с ошибкой или без? Такие дочерние процессы называются зомби (о чем свидетельствует буковка Z после двух вопросиков. Они не занимают ресурсов, кроме записей о процессах (их максимальное число ограниченно где-то 8-ю тысячами) Но из-за загрузки, главный не успел еще о них осведомиться, вот ты их и видишь!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 10:47 |
|
||
|
Как бы посмотреть причины defunct'ов процессов
|
|||
|---|---|---|---|
|
#18+
alex_v13Все таки проблема не дает покоя: по десять раз поменял все возможные настойки в конфиге, но остаются те же кучи висящих в IDLE Постгрессов, а загрузка сервера при этом то 15-20, то не более 2-3. iostat говорит, что диск почти не юзается - по 200-300 кб/сек, ну 2-3 мб/сек макс. Клиентское же ПО дофига ждет ответов от базы, время выполнения банальных запросов типа SELECT * FROM table, по таблице в 10 тысяк записей - по 100-200 сек... Чо ваще с базой ? :) Первый раз такое вижу на Постгрессе хотя, работаю с ним уже лет 5. А чего vmstat и top говорят? Насколько процессор загружен и, главное, кем? Если Постгрессом, то может в базе дело (типа там индексов забыли проставить в нужном месте, или запросы кривые, которые при тестах без такой нагрузки нормально себя вели)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2006, 17:52 |
|
||
|
Как бы посмотреть причины defunct'ов процессов
|
|||
|---|---|---|---|
|
#18+
vmstat и top говорят, что все кеш зафигачен на 3 гига, и свап не юзается... проц в момент 100 висящих IDLE не загружен - load avrg < 1. Ситуация престранная, судя по всему тупят клиенты не отправляющие запросы... Еще сделал логгинг запросов с длительностью > 1000 ms, потом прогоняю их из консоли - результататы по скорости отличаются в 10000 раз, т.е. по логам запрос идет 4000 ms, а из консоли - 0.4 ms... То ли база как-то очень медленно отдает данные клиенту, то ли канал соеденения жжот :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 11:15 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=2005839]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
9ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 447ms |

| 0 / 0 |
