Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Web: N клиентов и одно подключение к Postgres
|
|||
|---|---|---|---|
|
#18+
Разрабатываю для души сайт, пока нахожусь в стадии проектирования. В качестве СУБД хочу использовать Postgres (вернее, БД уже спроектирована). Рассчитываю на большое количество интернет-пользователей. Если использовать CGI, насколько я понимаю, для каждого пользователя необходимо своя сессия к Postgres серверу (начало работы скрипта - подключение к СУБД, выполнение запросов, конец работы скрипта - отключение от СУБД). Это приведёт к дополнительной нагрузке на сервер + время подключения тоже занимает время. Прошу прощения, что не пользуюсь профессиональными терминами, но я читал, что возможна организация доступа к СУБД всех пользователей, используя одно подключение. Такой подход должен существенно повысить производительность. Подскажите, пожалуйста, каким образом реализуют такие задачи, учитывая, что разработка ведётся под Win32 (Apache + Perl + Postgre SQL на cygwin) с дальнейшим переносом проекта на Unix-сервер. Прошу направить меня в правильное русло и исправить, если я что-то неверно понимаю. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 17:49 |
|
||
|
Web: N клиентов и одно подключение к Postgres
|
|||
|---|---|---|---|
|
#18+
Вам поможет mod_perl. С помощью него Apache может соединиться с БД на старте и далее работать без отключения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 18:10 |
|
||
|
Web: N клиентов и одно подключение к Postgres
|
|||
|---|---|---|---|
|
#18+
>Такой подход должен существенно повысить производительность это очень сомнительно. посгрес не умеет одновременно одним конектом 2 запроса выполнять. >mod_perl придется всеравно несколько конектов делать.. см пред пункт. так что только ради конектов я думаю его нестоит использовать...много гемору+сомнительный результат. >Подскажите, пожалуйста, каким образом реализуют такие задачи, учитывая, что разработка ведётся под Win32 (Apache + Perl + Postgre SQL на cygwin) с дальнейшим переносом проекта на Unix-сервер. >Прошу направить меня в правильное русло и исправить, если я что-то неверно понимаю. сразу делать под Unix ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 18:43 |
|
||
|
Web: N клиентов и одно подключение к Postgres
|
|||
|---|---|---|---|
|
#18+
придется всеравно несколько конектов делать.. см пред пункт. так что только ради конектов я думаю его нестоит использовать При следующем запросе Апач форкнется и не прибъёт форк при окончании селекта (см. доки Апача и mod_perl) При правильной настройке выигрыш получается в разы. Используется mod_perl 1.0 и Apache 2.0.* ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 19:22 |
|
||
|
Web: N клиентов и одно подключение к Postgres
|
|||
|---|---|---|---|
|
#18+
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сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 20:16 |
|
||
|
Web: N клиентов и одно подключение к Postgres
|
|||
|---|---|---|---|
|
#18+
2LeXa NalBat LeXa NalBatServer: Apache/1.3.29 (Unix) mod_perl/1.29 rus/PL30.19. Мы используем mod_perl и persistent connections. Алгоритм получается такой: стартует апач-папа, по мере необходимости форкает апача-ребенка, апач-ребенок подключается к базе (при этом постгрес-папа рождает ребенка, и между детьми устанавливается соединение), обрабатывает запрос, спит-отдыхает:), обрабатывает запрос, отдыхает,.. и т.д. Интересно было бы знать, с какими ключами собрирался Apache и PostgreSQL. (--sigchild ???) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 20:58 |
|
||
|
Web: N клиентов и одно подключение к Postgres
|
|||
|---|---|---|---|
|
#18+
pconnect разве нет такого для postgre? "The CBO without stats is like a morning without coffee." T.Kyte ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 21:21 |
|
||
|
Web: N клиентов и одно подключение к Postgres
|
|||
|---|---|---|---|
|
#18+
NiemiИнтересно было бы знать, с какими ключами собрирался Apache и PostgreSQL. (--sigchild ???)Я, к сожалению, не знаю, сборкой и установкой занимается наш сисадмин. А на что влияет ключ --sigchild? Может быть у вас есть такие вопросы, чтобы их смог понять и ответить я, программист, но не админ. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 21:21 |
|
||
|
Web: N клиентов и одно подключение к Postgres
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat NiemiИнтересно было бы знать, с какими ключами собрирался Apache и PostgreSQL. (--sigchild ???)Я, к сожалению, не знаю, сборкой и установкой занимается наш сисадмин. А на что влияет ключ --sigchild? Может быть у вас есть такие вопросы, чтобы их смог понять и ответить я, программист, но не админ. :) Это скорее не к вам, в программистам на РНР или админам его собирающим (может не в ту тему), параметр --enable-sigchild. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 22:32 |
|
||
|
Web: N клиентов и одно подключение к Postgres
|
|||
|---|---|---|---|
|
#18+
Niemi LeXa NalBat NiemiИнтересно было бы знать, с какими ключами собрирался Apache и PostgreSQL. (--sigchild ???)Я, к сожалению, не знаю, сборкой и установкой занимается наш сисадмин. А на что влияет ключ --sigchild? Может быть у вас есть такие вопросы, чтобы их смог понять и ответить я, программист, но не админ. :) Это скорее не к вам, в программистам на РНР или админам его собирающим (может не в ту тему), параметр --enable-sigchild.Мы не используем PHP. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 00:35 |
|
||
|
Web: N клиентов и одно подключение к Postgres
|
|||
|---|---|---|---|
|
#18+
Большое спасибо за ответы! Многое понял, многое сделал! Обалдел от возможностей Apache :) Пока что пробую выполнить persistent connection клиентом (до подключения к серверу при запуске Apache ещё не дошёл). Заткнулся на тестировании подключения: во-первых, Код: plaintext Правильно ли я понял, что, добавив в запускаемый скрипт Apache Код: plaintext в cgi ничего переписывать не нужно, т.е. Код: plaintext 1. 2. 3. 4. Каким образом можно всё таки проверить, что выполняются именно persistent-соединения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 10:16 |
|
||
|
|

start [/forum/topic.php?fid=53&tid=2007497]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 264ms |
| total: | 535ms |

| 0 / 0 |
