Какие инструменты есть в postgres для разделения ресурсов между пользователями?

Добрый день, существуют общие инсталяции (одна установка и множество разных БД с проектами) postgres c HA (master-slave-slave repmgr)
Хотелось бы узнать можно ли создать лимиты на использование ресурсов кластера для отдельных баз/пользователей.
Сейчас для контроля:
1) по диску: каждой базе отдельный lvm со своим табличным пространством, чтобы не забить одной базой весь инстанс в случае проблем
2) по подключениям: pgbouncer с транзакционным пуллингом. тем самым ограничиваю пользователь:база память на базу (один пользователь не может выесть больше чем work_mem на бекэнд) и количество соединений на весь инстанс.
Вопрос собственно в том рабочая ли это схема или есть более здравые решения для разграничения по ресурсам для одной установки на множество разных БД? и главное возможно ли при такой схеме гарантировать базам на кластере какие-то ресурсы (кроме диска)?
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Никаких.

главное возможно ли при такой схеме гарантировать базам на кластере какие-то ресурсы (кроме диска)?

Вы даже io гарантировать так не сможете. Потому что WAL пишется строго один.

один пользователь не может выесть больше чем work_mem на бекэнд

Может. Запросто. Вы некорректно читаете документацию, там про это отдельно сказано.
И может №2 - set work_mem to '..'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы