PostgreSQL. shared_buffers. Эксперименты 2

Продолжаю эксперименты с параметром PostgreSQL под названием shared_buffers. Ранее я уже провел большой эксперимент с shared_buffers, в котором было много действий, но можно наглядно посмотреть что будет, если в системе не будет хватать выставленного параметра shared_buffers.

А сейчас посмотрим что будет, если поставить слишком большое или слишком маленькое значение данного параметра.

Выделить много под shared_buffers:

У меня PostgreSQL крутится на виртуальной машине. Ей я выделил 1 Гб оперативной памяти. Удалось выделить под shared_buffers 1389 МБ (а иногда – даже больше, пока не понял, почему), и PostgreSQL с таким параметром стартовал и работает.

Почему? Посмотрел использование свопа (у меня он тоже 1024 Мб) – вроде как из выделенного на него используется чуть более 300 Мб, но это прямо в данный момент. Скорее всего, под shared_buffers можно выделить объем ОЗУ + Swap, но это нужно проверять точнее. Если читать инфу об ошибке при рестарте PostgreSQL, там про swap есть информация. Но её я буду проверять в следующий раз.

Если выделить под shared_buffers больше, то у меня сервер не стартует и выдает вот такую ошибку: could not map anonymous shared memory: cannot allocate memory. И подсказка появляется: «This error usually means that PostgreSQL’s request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size, reduce PostgreSQL’s shared memory usage, perhaps by reducing shared_buffers or max_connections».

PG error 1

Повторюсь, с этой ошибкой буду разбираться в следующий раз.

Выделить мало под shared_buffers:

Выделил под shared_buffers 120 кБ (15 страниц по 8 КБ, меньше разрешенного минимального значения). При рестарте появляется ошибка: «15 is outside the valid range for parameter “shared_buffers”».

PG error 2

В принципе, тут всё понятно и ожидаемо.

С первой ошибкой (когда не получается выделить много shared_buffers) можно будет поразбираться подробнее, так как довольно интересно – там всё нужное есть, но память не выделяется.


Be the first to comment

Leave a Reply

Ваш Mail не будет опубликован.


*