Перенести stats_temp_directory в postgresql в ОЗУ (tmpfs)

На днях писал заметку про мониторинг SSD дисков в связи с повышенным расходом ресурса записи. Решил повнимательнее посмотреть на сервер, чтобы понять, кто там так много пишет. Оказалось, что это PostgreSQL и конкретно временные данные статистки, живущие в директории pg_stat_tmp.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Выдержка из документации по поводу этого параметра:

Задаёт каталог, в котором будут храниться временные данные статистики. Этот путь может быть абсолютным или задаваться относительно каталога данных. Значение по умолчанию — pg_stat_tmp. Если разместить целевой каталог в файловой системе в ОЗУ, это снизит нагрузку на физическое дисковое хранилище и может увеличить быстродействие. Задать этот параметр можно только в postgresql.conf или в командной строке при запуске сервера.

В документации указано, что эту директорию можно вынести в ram диск, что я и сделал в итоге. По дефолту она занимает всего 25 мегабайт, так что я решил с запасом сделать диск размером 1G.

mkdir /var/lib/pgsql_stats_tmp
chown postgres:postgres /var/lib/pgsql_stats_tmp

Теперь добавляем в fstab (не забудьте в конце переход на новую строку поставить):

tmpfs /var/lib/pgsql_stats_tmp tmpfs size=1G,uid=postgres,gid=postgres 0 0

Монтируем диск в систему:

mount /var/lib/pgsql_stats_tmp

Меняем параметр в postgresql.conf:

stats_temp_directory = '/var/lib/pgsql_stats_tmp'

Перезапускаем postgresql:

systemctl restart postgrespro-1c-13

Теоретически должна и производительность повыситься, но я не измерял. С учетом того, что SSD и так достаточно быстрый, разница будет не заметна на уровне погрешности измерений.

Как можно было догадаться из названия сервиса postgresql, настраивалось все это для сервера 1С. Так что если вам предстоит переезд на postgresql, заметку сохраните. Наверняка пригодится.

Если есть вопросы по поводу переезда или подбора сервера под 1С, задавайте. Статья может получится на эту тему, а может и нет. Не знаю, как со временем будет. Там должны быть бэкапы, запасной сервер для разворачивания и тестирования бэкапов баз, автоматическая выгрузка баз в dt, мониторинг. В общем все, что надо для промышленной эксплуатации.

Источник - мой канал: https://t.me/srv_admin/903.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

3 комментария

  1. Андрей

    В PostgreSQL сервере версии 15 и выше параметр 'stats_temp_directory' больше не используется и надобности в нём нет. В т.ч. в версиях от/для 1С.

  2. сделайте синхронизацию комментариев сайта и комментариев поста в телеге

    • А вы знаете, как это технически можно реализовать каким-то готовым решением?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar