|
|
|
out of shared memory
|
|||
|---|---|---|---|
|
#18+
Добрый день! При тестированиии нагрузки на базу получил следующие сообщения: 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. Буду очень благодарен за пояснение по расчету данных параметров в разрезе вышеописанной ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2014, 12:23:44 |
|
||
|
out of shared memory
|
|||
|---|---|---|---|
|
#18+
Константин Евтеев, не большое пояснение запросы, использованные для тестирования нагрузки: хранимки на выборку с использованием temporary tables ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2014, 12:25:55 |
|
||
|
out of shared memory
|
|||
|---|---|---|---|
|
#18+
Константин ЕвтеевКонстантин Евтеев, не большое пояснение запросы, использованные для тестирования нагрузки: хранимки на выборку с использованием temporary tables тогда скорее всего вам надо поднять max_locks_per_transaction hmm до скольки не знаю... пока ошибка не перестанет идти... до 256 можно смело поднимать для начала... 1) 1000 партиций - плохая идея... postgresql выбирает партиции для работы ЛИНЕЙНЫМ поиском... т.е. выбор нужной партиции из 1000 будет ровно в 10 раз медленнее чем выбор нужной партиции из 100 партиций... разработчики не рекомендуют использовать больше 100 партиций... а лучше меньше... на 1000 партиций большой кусок времени (вполне может быть что и основное время) выполнения запроса может/будет уходить на выбор нужной партиции для выполнения запроса. 2) Ну и заодно надо очень аккуратно партиции с хранимками склеивать... там легко можно получить ситуацию когда будут все партиции перебираться на вроде бы очевидном месте в запросах внутри хранимок. Вполне возможно что учитывая 1 и 2 вам надо ставить max_locks_per_transaction в больше чем 1000 (очень на то похоже :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2014, 13:24:28 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=132&tid=1998869]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
3ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 330ms |

| 0 / 0 |
