Как уменьшить рост базы данных PostgreSQL автоматически¶
Если база данных Staffcop слишком быстро растет, настройте более агрессивные параметры автовакуума. Автовакуум — встроенный процесс PostgreSQL, который удаляет «мертвые» строки и освобождает место для повторного использования. Чем чаще он запускается, тем медленнее растет файл базы данных.
Примечание
В Staffcop версии 4.4 и выше эти настройки добавляются автоматически. Выполнять инструкцию нужно только для более ранних версий.
Совет
Чтобы подобрать оптимальные значения под вашу конфигурацию сервера и нагрузку, используйте калькулятор конфигурации PostgreSQL. Если на сервере БД работают Staffcop и другие сервисы, учитывайте потребляемые ими ресурсы.
Настройка автовакуума¶
Откройте консоль Linux на сервере Staffcop.
Определите установленную версию PostgreSQL:
ls /etc/postgresql/
Откройте файл настроек PostgreSQL для редактирования. Вместо
<версия>подставьте номер версии из предыдущего шага:
sudo nano /etc/postgresql/<версия>/main/postgresql.conf
Добавьте в конец файла следующие строки:
autovacuum = on # включить процесс автовакуума log_autovacuum_min_duration = 0 # записывать в журнал все операции автовакуума autovacuum_max_workers = 5 # максимальное число параллельных процессов автовакуума autovacuum_naptime = 1min # интервал между запусками автовакуума autovacuum_vacuum_threshold = 300 # минимальное число измененных строк до очистки autovacuum_analyze_threshold = 200 # минимальное число измененных строк до анализа autovacuum_vacuum_scale_factor = 0.01 # доля измененных строк таблицы, после которой запускается очистка autovacuum_analyze_scale_factor = 0.005 # доля измененных строк таблицы, после которой запускается анализ
Сохраните файл: нажмите Ctrl+X, затем Y и Enter.
Перезапустите PostgreSQL:
sudo service postgresql restart
Убедитесь, что служба работает:
sudo service postgresql status
После применения настроек автовакуум будет запускаться чаще, база данных станет расти умеренными и более предсказуемыми темпами.
Последнее обновление: 09.10.26