powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Web: N клиентов и одно подключение к Postgres
11 сообщений из 11, страница 1 из 1
Web: N клиентов и одно подключение к Postgres
    #32870818
UH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разрабатываю для души сайт, пока нахожусь в стадии проектирования.
В качестве СУБД хочу использовать Postgres (вернее, БД уже спроектирована).
Рассчитываю на большое количество интернет-пользователей.

Если использовать CGI, насколько я понимаю, для каждого пользователя необходимо своя сессия к Postgres серверу (начало работы скрипта - подключение к СУБД, выполнение запросов, конец работы скрипта - отключение от СУБД). Это приведёт к дополнительной нагрузке на сервер + время подключения тоже занимает время.

Прошу прощения, что не пользуюсь профессиональными терминами, но я читал, что возможна организация доступа к СУБД всех пользователей, используя одно подключение. Такой подход должен существенно повысить производительность.

Подскажите, пожалуйста, каким образом реализуют такие задачи, учитывая, что разработка ведётся под Win32 (Apache + Perl + Postgre SQL на cygwin) с дальнейшим переносом проекта на Unix-сервер.

Прошу направить меня в правильное русло и исправить, если я что-то неверно понимаю.

Заранее благодарен.
...
Рейтинг: 0 / 0
Web: N клиентов и одно подключение к Postgres
    #32870909
blackrook
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вам поможет mod_perl. С помощью него Apache может соединиться с БД на старте и далее работать без отключения
...
Рейтинг: 0 / 0
Web: N клиентов и одно подключение к Postgres
    #32870979
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Такой подход должен существенно повысить производительность

это очень сомнительно.
посгрес не умеет одновременно одним конектом 2 запроса выполнять.


>mod_perl

придется всеравно несколько конектов делать.. см пред пункт. так что только ради конектов я думаю его нестоит использовать...много гемору+сомнительный результат.

>Подскажите, пожалуйста, каким образом реализуют такие задачи, учитывая, что разработка ведётся под Win32 (Apache + Perl + Postgre SQL на cygwin) с дальнейшим переносом проекта на Unix-сервер.
>Прошу направить меня в правильное русло и исправить, если я что-то неверно понимаю.

сразу делать под Unix
...
Рейтинг: 0 / 0
Web: N клиентов и одно подключение к Postgres
    #32871045
blackrook
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
придется всеравно несколько конектов делать.. см пред пункт. так что только ради конектов я думаю его нестоит использовать

При следующем запросе Апач форкнется и не прибъёт форк при окончании селекта (см. доки Апача и mod_perl) При правильной настройке выигрыш получается в разы. Используется mod_perl 1.0 и Apache 2.0.*
...
Рейтинг: 0 / 0
Web: N клиентов и одно подключение к Postgres
    #32871085
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Server: Apache/1.3.29 (Unix) mod_perl/1.29 rus/PL30.19. Мы используем mod_perl и persistent connections. Алгоритм получается такой: стартует апач-папа, по мере необходимости форкает апача-ребенка, апач-ребенок подключается к базе (при этом постгрес-папа рождает ребенка, и между детьми устанавливается соединение), обрабатывает запрос, спит-отдыхает:), обрабатывает запрос, отдыхает,.. и т.д. wbear>mod_perl
так что только ради конектов я думаю его нестоит использовать...много гемору+сомнительный результат.Результат не сомнительный! :) При использовании постоянных подключений к БД производительность увеличивается значительно. Только что я повторил давнишний эксперимент: коннект к базе - 0.019сек; prepare,execute,fetch одной строки - 0.0035сек.
...
Рейтинг: 0 / 0
Web: N клиентов и одно подключение к Postgres
    #32871119
Фотография Niemi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2LeXa NalBat
LeXa NalBatServer: Apache/1.3.29 (Unix) mod_perl/1.29 rus/PL30.19. Мы используем mod_perl и persistent connections. Алгоритм получается такой: стартует апач-папа, по мере необходимости форкает апача-ребенка, апач-ребенок подключается к базе (при этом постгрес-папа рождает ребенка, и между детьми устанавливается соединение), обрабатывает запрос, спит-отдыхает:), обрабатывает запрос, отдыхает,.. и т.д.
Интересно было бы знать, с какими ключами собрирался Apache и PostgreSQL. (--sigchild ???)
...
Рейтинг: 0 / 0
Web: N клиентов и одно подключение к Postgres
    #32871128
Фотография hell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pconnect разве нет такого для postgre?

"The CBO without stats is like a morning without coffee." T.Kyte
...
Рейтинг: 0 / 0
Web: N клиентов и одно подключение к Postgres
    #32871129
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NiemiИнтересно было бы знать, с какими ключами собрирался Apache и PostgreSQL. (--sigchild ???)Я, к сожалению, не знаю, сборкой и установкой занимается наш сисадмин. А на что влияет ключ --sigchild?

Может быть у вас есть такие вопросы, чтобы их смог понять и ответить я, программист, но не админ. :)
...
Рейтинг: 0 / 0
Web: N клиентов и одно подключение к Postgres
    #32871171
Фотография Niemi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeXa NalBat NiemiИнтересно было бы знать, с какими ключами собрирался Apache и PostgreSQL. (--sigchild ???)Я, к сожалению, не знаю, сборкой и установкой занимается наш сисадмин. А на что влияет ключ --sigchild?

Может быть у вас есть такие вопросы, чтобы их смог понять и ответить я, программист, но не админ. :)
Это скорее не к вам, в программистам на РНР или админам его собирающим (может не в ту тему), параметр --enable-sigchild.
...
Рейтинг: 0 / 0
Web: N клиентов и одно подключение к Postgres
    #32871225
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Niemi LeXa NalBat NiemiИнтересно было бы знать, с какими ключами собрирался Apache и PostgreSQL. (--sigchild ???)Я, к сожалению, не знаю, сборкой и установкой занимается наш сисадмин. А на что влияет ключ --sigchild?

Может быть у вас есть такие вопросы, чтобы их смог понять и ответить я, программист, но не админ. :)
Это скорее не к вам, в программистам на РНР или админам его собирающим (может не в ту тему), параметр --enable-sigchild.Мы не используем PHP. :(
...
Рейтинг: 0 / 0
Web: N клиентов и одно подключение к Postgres
    #32871606
UH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо за ответы! Многое понял, многое сделал! Обалдел от возможностей Apache :)

Пока что пробую выполнить persistent connection клиентом (до подключения к серверу при запуске Apache ещё не дошёл).
Заткнулся на тестировании подключения: во-первых,
Код: plaintext
$Apache::DBI::DEBUG     =  2 ;
не даёт желаемого результата: в лог-файл Apache ничего нового не пишет; во-вторых, судя по данным Apache benchmark, без mod_perl работает едва быстрее :). Может, на первый взгляд, а может что не донастроил.
Правильно ли я понял, что, добавив в запускаемый скрипт Apache
Код: plaintext
use Apache::DBI;
,
в cgi ничего переписывать не нужно, т.е.
Код: plaintext
1.
2.
3.
4.
...
use DBI;
...
DBI->connect($data_source, $username, $password);
...
можно оставить без изменения?

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


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