@Smeilz1
За любое развитие

Как хранить базу postgres 8.4 в памяти?

Мне рассказали, что для частых однотипных запросов можно хранить всю базу в оперативной памяти.
Подскажите какая настройка позволяет это делать?
База на 200GB у меня- для меня этот способ сработает?
  • Вопрос задан
  • 621 просмотр
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
Закупаете железку с 256гб ram и выше. Ставите shared_buffers в 200гб. Всё. Со временем все данные к каким обращались будут подтянуты в память. А поскольку буферов больше чем база - база их не будет вытеснять из памяти.

Можно было бы воспользоваться pg_prewarm для более удобного подтягивания данных в память после старта СУБД - да у вас какая-то ископаемая, давно уже не поддерживаемая версия. pg_prewarm для такой древности нет. (если, конечно, вы не опечатались в 9.4)
Для такого объёма shared_buffers желательно huge pages сделать по объёму на пару процентов больше чем shared_buffers. А вот как - может для 8.4 и никак, я не настолько старый DBA, не знаю.
Ответ написан
ky0
@ky0
Миллиардер, филантроп, патологический лгун
У постгреса есть встроенные механизмы, делающие примерно то же самое - часто используемые данные кэшируются в памяти. Всю базу хранить в памяти - несколько другое, обычно это и не требуется, при достаточном объёме выданной СУБД памяти.

Из релевантных параметров - отключение fsync (не рекомендую) и synchronous_commit.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы