powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Использование двух ядер...
6 сообщений из 6, страница 1 из 1
Использование двух ядер...
    #34970545
Фотография Vector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех!

Проблема такая. Есть приложение, которое создает одно подключение с сервером PostgreSql 8.1.5, установленном на сервере с двухядерным процессором
AMD X2 64 Dual Core processor 4200+ под управлением Suse Linux ядро 2.6.18.2-34-default.

Приложение запускается на другой машине. Сервер используется только для PostgreSQL.

В приложении используется многопоточная архитектура, где каждый из потоков использует одно соединение с SQL сервером.

В результате с помощью top получаю, что используется только одно ядро под завязку!!!

В итоге получается, что PostgreeSql в рамках одного соединения не может распределять нагрузку между ядрами или процессорами.

Так ли это?

С уважением Vector.
...
Рейтинг: 0 / 0
Использование двух ядер...
    #34970751
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vector
В итоге получается, что PostgreeSql в рамках одного соединения не может распределять нагрузку между ядрами или процессорами.

Так ли это?

Да, это так. Одна сессия - один процесс
...
Рейтинг: 0 / 0
Использование двух ядер...
    #34970757
tadmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vector
В приложении используется многопоточная архитектура, где каждый из потоков использует одно соединение с SQL сервером.

"каждый из потоков свое соединение", или "все потоки одно соединение"?
Vector
В итоге получается, что PostgreeSql в рамках одного соединения не может распределять нагрузку между ядрами или процессорами.

Одно соединение - один процесс postgres, этот процесс не может использовать более одного ядра/процессора.
Если в вашем многопоточном приложении есть хотя бы два потока, каждый из которых открывает свое соединение, то будет два процесса postgres и загрузка двух процессоров.
...
Рейтинг: 0 / 0
Использование двух ядер...
    #34970807
Фотография Vector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал следующее:

Запустил два приложения и подключился к одной базе. - В итоге два процесса и использование двух ядер! Все ОК..

Добавил дополнительное Connection в рамках одного приложения и запустил одно приложение, которое использует два соединения в разных потоках - в итоге два процесса postmaster, но делят они один процессор!!!

Что-то я не понял, почему?
...
Рейтинг: 0 / 0
Использование двух ядер...
    #34970859
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VectorПопробовал следующее:

Запустил два приложения и подключился к одной базе. - В итоге два процесса и использование двух ядер! Все ОК..

Добавил дополнительное Connection в рамках одного приложения и запустил одно приложение, которое использует два соединения в разных потоках - в итоге два процесса postmaster, но делят они один процессор!!!
Что-то я не понял, почему?
На клиенте точно граблей нет? Т.е. таки реально используются 2 connection параллельно? Например в делфах при использовании synhronize() реально не будет параллельной работы.
Думаю что PG глубоко плевать на то откуда берутся tcp/ip соединения на порту который он слушает. Берутся и хорошо :)
...
Рейтинг: 0 / 0
Использование двух ядер...
    #34970897
Фотография Vector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался. Да, именно на клиенте были грабли.
Дело в том, что все потоки обращались к одной synchronized функции, которая и возвращала
набор данных.
Теперь каждый поток имеет свою собственную функцию получения набора данных.

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


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