Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дублирование процесса Postgres.exe 
:(
    Опции темы
UsamaBrainLaden
Дата 11.4.2009, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 10.11.2008

Репутация: нет
Всего: нет



При каждом новом соединении к серверу БД, в диспетчере задач появляется новый процесс postgres.exe, размер занимаемой памяти впечатляет (11 мегабайт), причем если соединений будет больше, то число занимаемой памяти каждого из дублируемых процессов уменьшается (это хорошо). Вопрос в том нормально ли это, почему PostgreSQL для каждого нового соединения выделяет отдельный процесс,а не поток? Дело в том, что когда число соединений переваливает за 50, то клиенты начинают каскадно отваливаться, с сообщением о том, что сервер разорвал соединение по причине, которая очевидна: слишком много процессов и памяти занято на сервере и че-то там с SQL запросами.

PS:
Я работаю с Windows 2003 Server SP(какой-то, но не первый) и PostgreSQL 8.2.9, причем пробовал соединяться из pgAdmin и Delphi (Zeos и ADO) - та же песня!. На сервере 512 МБ ОП, конфиг постгреса практически не правил (разве что подключение с любого IP и число конкурирующих соединений).
PM MAIL   Вверх
sir_nuf_nuf
Дата 14.4.2009, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 1
Всего: 31



Это просто факт. Postgresql работает на процессах. Такое вот у них решение.
Да не очень хорошо с точки зрения производительности - когда постоянно цепляются и отваливаются клиенты,
но в общем более надежное и простое решение, чем потоки.

По поводу того, что у вас начинают отваливаться клиенты - проверьте параметр
max_connections
скорее всего вы превзошли это ограничение.. Если не секрет - откуда столько клиентов ?

По поводу того, сколько памяти расходуется..Все современные ОС - умные, и разделяют (по возможности) память между
процессами. Т.е. если у вас 10 процессов-клонов используют один и тот же код то сегменты памяти содержащие этот
код - у них будут общие.  Однако данные у каждого процесс будут свои... 
А вот что показывает диспечер задач - это вопрос.. 



--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
gcc
Дата 14.4.2009, 07:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: нет
Всего: 17



Цитата(UsamaBrainLaden @ 11.4.2009,  21:48)
 На сервере 512 МБ ОП, конфиг постгреса практически не правил 

конфиг по умолчанию там для мощного сервера, по умолчанию Postgres выделяет много памяти для работы, для ключей и для всего остального (смотря какой тип базы), можно конфиг оптимизировать под себя себя...
PM WWW ICQ Skype GTalk Jabber   Вверх
UsamaBrainLaden
Дата 14.4.2009, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 10.11.2008

Репутация: нет
Всего: нет



Цитата

По поводу того, что у вас начинают отваливаться клиенты - проверьте параметр
max_connections

В этом случае я бы увидел сообщение что не могу приконнектиться из-за превышения лимита конкурентных подключений. Хотя этот предел может быть достигнут, когда клиент отсоединяется некорректно, то процесс висит и отвалится только по таймауту (накапливается число мёртвых процессов). Я эксперементировал с числом одновременных подключений, просто запускал у себя клиентские программы (штук 70) и после чего все процессы чудом позавершались,а на клиентах вываливались ошибки, что сервер оборвал соединение (при этом max_connections у меня стоял ваще 1000). Просто обидно что клиент висит в основном в режиме IDLE, то есть он нужную табличку стянул и в ней сидит и запросы посылает редко (у меня трёхзвенная архитектура), а процесс при этом висит. В отличие от Apache, у которого PHP страничка работает с БД и при этом процесс только моргнёт разок и всё (появится в диспетчере и исчезнет сразу).
PM MAIL   Вверх
sir_nuf_nuf
Дата 14.4.2009, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 1
Всего: 31



Вообщем должно быть довольно безразлично на процессах или потоках у вас работает сервер. Вы не должны это замечать.
Если отваливаются клиенты - ищите проблему конфигурации (я думаю Postgresql достаточно зрелая база, что бы переварить 70 клиентов..)

Хотя - проверьте ка - может у вас в ОС есть ограничение на число процессов..

P.S. Вообще плохо, что у вас столько соединений открыто. Что за Apllication (Web) сервер ?
Должна быть возможность повторного использования соединений.  Или хотя бы корректного закрытия когда они не нужны.


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Temdegon
Дата 3.9.2009, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.10.2008
Где: Minsk

Репутация: нет
Всего: 9



Цитата

конфиг по умолчанию там для мощного сервера, по умолчанию Postgres выделяет много памяти для работы, для ключей и для всего остального (смотря какой тип базы), можно конфиг оптимизировать под себя себя...

По мне так наоборот, дефолтный конфиг заточен под очень ограниченные системы в плане памяти. В любом мануале это написано, и рекомендуется перенастраивать конф в обязательном порядке, разрешать испльзовать больше памяти.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.0669 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.