Сколько соединений может работать postgresql лучше? - PullRequest
0 голосов
/ 01 марта 2012

У меня есть 3 таблицы, к которым обращаются каждый раз. Моя веб-страница PHP отправляет запрос на промежуточный слой на языке C, который, в свою очередь, передает вызовы в postgresql. Однако при просмотре с одной вкладки все записи выбираются правильно. Но когда я делаю больше запросов от многих браузеров / вкладок, по крайней мере половина из них дает сбой, и, поскольку это встроенный домен, отладка является настоящей проблемой. Я подозреваю, что соединения с базой данных из различных браузеров одновременно помещаются в очереди, и может произойти что-то грубое. Кто-нибудь может, пожалуйста, поделиться своими мыслями по этому производственному вопросу?

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Не угадайте, знаете.

Вы можете получить PostgreSQL для регистрации подключений и отключений.Это, вероятно, уже регистрирует сообщение об ошибке для вас.Проверьте журналы.

Трудно сказать больше, не зная, что делает этот слой "C".Вам может быть полезен пул подключений.Начните с просмотра pgbouncer возможно.

0 голосов
/ 02 марта 2012

Если вы не получаете никаких ошибок со слоя C, проверьте файл журнала Postgresql, чтобы увидеть, есть ли там ошибки.

Мои первоначальные предположения были бы такими:

a) Слой C путает соединения между потоками и делает две вещи с одним и тем же соединением одновременно.

или b) Слой C не освобождает соединения, когда с ними сделано, поэтому вы выходите за пределы памяти.

В любом случае, вам действительно нужно найти ошибку, прежде чем вы сможете ее исправить.

Сам Postgresql будет обрабатывать множество одновременных соединений, хотя вы, вероятно, захотите объединить их, чтобы сократить время установки / разрыва каждого сеанса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...