Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / подпроцессы и тайм-аут соединений / 12 сообщений из 12, страница 1 из 1
03.06.2008, 18:41
    #35352184
dfk
dfk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпроцессы и тайм-аут соединений
такой вопрос:
как ограничить таймаут для дочерних процессов, открываемых постгрессом, и тайм-аут для pconnect'ов, открываемых с помощью PHP?

win32, XP or win2k3 Serv.

"ломал" постгресс, бомбардируя его массовыми запросами. pg норм, НО: плодит себе кучу подпроцессов и периодически отказывает пользователю, под которым производится бомбардировка, в соединении.

вопрос: как заставить умирать дочерние процессы (после тестов оставил машину на час с лишним, к базе запросов не было) и закрываться pconnect's?
...
Рейтинг: 0 / 0
04.06.2008, 03:30
    #35352880
gng
gng
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпроцессы и тайм-аут соединений
Если б не винда, то pgpool/pgpoolII можно было бы использовать. Ограничивает число соединений, есть таймаут по неактивности. Но только *nix.

В ODBC вроде как есть родной виндовый connection pooling, но в PHP с одного драйвера на другой так просто не соскочишь...
...
Рейтинг: 0 / 0
04.06.2008, 10:36
    #35353245
dfk
dfk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпроцессы и тайм-аут соединений
ммм, надо тестовый БД сервер на линукс перегнать;)
...
Рейтинг: 0 / 0
04.06.2008, 11:19
    #35353423
dfk
dfk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпроцессы и тайм-аут соединений
какой дистриб наиболее подходит для сервера БД?
...
Рейтинг: 0 / 0
04.06.2008, 11:36
    #35353495
Dan Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпроцессы и тайм-аут соединений
dfkкакой дистриб наиболее подходит для сервера БД?Какой лучше сами знаете.
...
Рейтинг: 0 / 0
04.06.2008, 13:20
    #35353914
ChameLe0n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпроцессы и тайм-аут соединений
dfkтакой вопрос:
как ограничить таймаут для дочерних процессов, открываемых постгрессом, и тайм-аут для pconnect'ов, открываемых с помощью PHP?

"ломал" постгресс, бомбардируя его массовыми запросами. pg норм, НО: плодит себе кучу подпроцессов и периодически отказывает пользователю, под которым производится бомбардировка, в соединении.

вопрос: как заставить умирать дочерние процессы (после тестов оставил машину на час с лишним, к базе запросов не было) и закрываться pconnect's?

Ну а чего вы еще ото пхп ожидали? Как отрывали pconnect так корректно его в конце и закрывайте. Чем не угодил обычный коннект? Хотите пул - юзайте java + c3p0 какой-нибудь.
PS помоему в 8,4 обещали сделать чтобы на эту тему..
...
Рейтинг: 0 / 0
04.06.2008, 13:21
    #35353921
ChameLe0n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпроцессы и тайм-аут соединений
dfkкакой дистриб наиболее подходит для сервера БД?
CentOs
...
Рейтинг: 0 / 0
04.06.2008, 17:16
    #35354721
dfk
dfk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпроцессы и тайм-аут соединений
а pconnect из php не закрывается, в том и фишка, это постоянное соединение , чтобы экономить время на постоянных пересоединениях php c БД. по-идее, они должны через какое-то не очень большое время закрываться.
...
Рейтинг: 0 / 0
04.06.2008, 17:29
    #35354754
Dan Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпроцессы и тайм-аут соединений
dfkа pconnect из php не закрывается, в том и фишка, это постоянное соединение , чтобы экономить время на постоянных пересоединениях php c БД. по-идее, они должны через какое-то не очень большое время закрываться.Когда я лет пять назад занимался PHP, то pconnect для PostgreSQL работал не так же как для MySQL. Точнее работал как простой connect. Возможно, такое положение сохранилось до сих пор.
...
Рейтинг: 0 / 0
05.06.2008, 00:43
    #35355385
Konstantin~
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпроцессы и тайм-аут соединений
если есть куча клиентов и каждому нужно отдельное соединение к базе то по любому надо использовать софт который организует connection pool.

лучшее что есть это PgBouncer от Skype. Можно еще Pgpool, но в нем есть баги которые приводят к тому что открытое соединение повисает в состоянии "idle in transanction".

ставьте постгрес на CentOS 5, PgBouncer есть в виде rpm'a в репозитарии от постгреса.
...
Рейтинг: 0 / 0
05.06.2008, 06:26
    #35355508
ChameLe0n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпроцессы и тайм-аут соединений
dfkа pconnect из php не закрывается, в том и фишка, это постоянное соединение , чтобы экономить время на постоянных пересоединениях php c БД. по-идее, они должны через какое-то не очень большое время закрываться.

Много времени прошло... Но как мне помнится эта тема нужна чтобы воспользоваться соединением на нескольких страницах. Иначе в каждой php пришлось бы открывать новое соединение... Если не изменяет память - то там где соединение используется в последний раз его надо ручками закрыть. Pconnect служит только для этого... На пхп ничего подобного пулам соединений нет,так чтобы использовать соединение повторно при повторном коннекте клиента.
...
Рейтинг: 0 / 0
05.06.2008, 10:37
    #35355817
dfk
dfk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпроцессы и тайм-аут соединений
в общем, ставлю centos в данный момент.
вообще, поведение php и postgresql под win при использовании pconnect и тесте нагрузки с использованием двух потоков утилиты апача ab с параметрами -n 50000 -c 64 приводит к тому, что за первые примерно 10 секунд плодится ~100 подпроцессов (как я понял, максимум при дефолтных настройках базы). при этом более 98% записей в логах апача соответствуют ожидаемому ответу, остальные - от отказа непривелигерованному пользователю в новом соединении до слишком много клиентов. При этом ab показывает производительность в ~65 в секунду, на AMD Semprone 2800+

если мучить только одним потоком Ab, то 100% - нормальная работа и не менее 150 запросов в секунду

единственный минус - это продолжающие висеть подпроцессы и занятые соединения.

если использовать просто connect, то производительность заметно снижается (что и понятно, каждый скрипт каждый раз заново открывает соединение с бд)
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / подпроцессы и тайм-аут соединений / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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