30 Гб. Разрабы в ней что-то считают. Пока они считают, место на диске стремительно уменьшается. За счет pgsql_tmp и временных таблиц. Что крутить: work_mem, temp_buffers или оба?
От create temp table не уйти, дисков добавить нельзя.
Ну, если у вас есть столько памяти — то поднимать work_mem. Если нет — менять или сервер или используемые алгоритмы.
Впрочем, подъём work_mem не поможэт (никак), если это и правда временные таблицы (они в pgsql_tmp тожэ лежат).
Temp tables лежат же в базе
Место, получается, едят с двух сторон: pgsql_tmp + temp tables. Задраный work_men снизит (может быть) скорость поедания места со стороны pgsql_tmp?
pgsql_tmp — тожэ именно там.
Собственно, pgsql_tmp — это место, где лежат временные таблицы и вынесенные на диск результаты сортировок и хэшырований. Да, work_mem можэт снизить потребление результатами сортировок. Впрочем, — а как у вас так получилось, что место в памяти есть, а на диске — нет?
Вот не совсем. Temp tables лежат в /pgdata/oid/, а результаты хешей в /pgdata/pgsql_tmp
Хочешь сказать, что оно в общей директории создаётся — только именем отличается?
В общей - это рядом с файлами даннных? Получается да.
(Просто совет от практика) По-моему, если (после, возможно, многодневных разбирательств!) выяснится, что проблему не решить переписыванием запросов и настройками, то вот это: > От create temp table не уйти, дисков добавить нельзя. стремительно изменится. Так почему бы с этого не начать? ;)
Э, а чо, и упустить шанс на многодневные разбирательства!?!
Обсуждают сегодня