Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / out of shared memory / 4 сообщений из 4, страница 1 из 1
01.02.2014, 12:23:44
    #38545863
Константин Евтеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
out of shared memory
Добрый день!
При тестированиии нагрузки на базу получил следующие сообщения: out of shared memory.
Объем памяти на сервере 46гб; postgres 9.1, os debian 7;
shared buffers 20 gb;
work mem 12 mb
max_locks_per_transaction 64
размер базы около 2 тб
есть одна секционированная таблица (75% занимаемого места), 1000 партиций
Max connections 200

Нагрузку делал на 20 соединениях(запросы на select,каждый создавал по одной temporary table(время выполнения около 0.5 сек))
В фоне шли операции update(2-3 каждая также создавала temporary table); две выборки по секционированой таблице также с использованием temporary table.
Прогнозируемое колличество подключений в пределах 60
Собираюсь увеличить max_locks_per_transaction, и уменьшить shared buffers. Буду очень благодарен за пояснение по расчету данных параметров в разрезе вышеописанной ситуации.
...
Рейтинг: 0 / 0
01.02.2014, 12:25:55
    #38545865
Константин Евтеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
out of shared memory
Константин Евтеев, не большое пояснение запросы, использованные для тестирования нагрузки: хранимки на выборку с использованием temporary tables
...
Рейтинг: 0 / 0
01.02.2014, 13:24:28
    #38545887
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
out of shared memory
Константин ЕвтеевКонстантин Евтеев, не большое пояснение запросы, использованные для тестирования нагрузки: хранимки на выборку с использованием temporary tables

тогда скорее всего вам надо поднять max_locks_per_transaction
hmm до скольки не знаю... пока ошибка не перестанет идти...
до 256 можно смело поднимать для начала...


1) 1000 партиций - плохая идея... postgresql выбирает партиции для работы ЛИНЕЙНЫМ поиском... т.е. выбор нужной партиции из 1000 будет ровно в 10 раз медленнее чем выбор нужной партиции из 100 партиций... разработчики не рекомендуют использовать больше 100 партиций... а лучше меньше... на 1000 партиций большой кусок времени (вполне может быть что и основное время) выполнения запроса может/будет уходить на выбор нужной партиции для выполнения запроса.

2) Ну и заодно надо очень аккуратно партиции с хранимками склеивать... там легко можно получить ситуацию когда будут все партиции перебираться на вроде бы очевидном месте в запросах внутри хранимок.

Вполне возможно что учитывая 1 и 2 вам надо ставить max_locks_per_transaction в больше чем 1000 (очень на то похоже :))
...
Рейтинг: 0 / 0
01.02.2014, 14:38:37
    #38545911
Константин Евтеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
out of shared memory
Maxim Boguk,

Спасибо, в понедельник буду пробовать.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / out of shared memory / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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