Первые 4 рычага: shared_buffers = 25% RAM, effective_cache_size = 75% RAM, work_mem = RAM / (max_connections × 3), maintenance_work_mem = 1-2 GB. Затем включите pg_stat_statements, найдите top-10 по total_exec_time, добавьте индексы через EXPLAIN ANALYZE. Следите за autovacuum (pg_stat_user_tables.last_autovacuum): если вечно отстаёт — увеличьте autovacuum_max_workers.
Ниже: подробности, пример, смежные термины, FAQ.
Бесплатный онлайн-инструмент — проверка health: результат мгновенно, без регистрации.
-- pgbench benchmark до/после настройки
$ pgbench -c 10 -T 60 mydb
-- top-10 медленных запросов
SELECT query, calls, total_exec_time, mean_exec_time
FROM pg_stat_statements
ORDER BY total_exec_time DESC LIMIT 10;
-- Индекс + verify
CREATE INDEX CONCURRENTLY ON orders (user_id, created_at DESC);
EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM orders WHERE user_id = 1 LIMIT 20;Чтобы оптимизировать производительность PostgreSQL, необходимо правильно настроить параметры конфигурации, такие как shared_buffers, work_mem и maintenance_work_mem. Рекомендуется установить shared_buffers на 25% от объема оперативной памяти сервера, а work_mem — на 1-2 МБ на соединение. Эти настройки помогут улучшить скорость обработки запросов и общую эффективность работы базы данных.
Для достижения оптимальной производительности PostgreSQL важно правильно настроить несколько ключевых параметров. Рассмотрим их подробнее:
VACUUM и CREATE INDEX. Рекомендуется устанавливать его на 10-20% от shared_buffers.Настройка этих параметров может существенно повлиять на производительность вашего PostgreSQL-сервера.
Рассмотрим практический пример конфигурации PostgreSQL для сервера с 32 ГБ оперативной памяти. Для этого откройте файл конфигурации postgresql.conf и внесите следующие изменения:
# Настройка кэшированияshared_buffers = 8GBwork_mem = 4MBmaintenance_work_mem = 2GBeffective_cache_size = 24GB
После внесения изменений необходимо перезапустить PostgreSQL, чтобы они вступили в силу. Это можно сделать с помощью команды:
sudo systemctl restart postgresqlТакже рекомендуется проводить регулярный мониторинг производительности базы данных. Для этого можно использовать инструменты, такие как enterno.io, которые помогут отслеживать ключевые метрики и выявлять узкие места в производительности.
Не забывайте, что каждая база данных уникальна, и вам может понадобиться дополнительно настроить параметры в зависимости от специфики ваших запросов и нагрузки на сервер.
Health Score — комплексная оценка технического состояния сайта по 20+ параметрам: SSL, заголовки безопасности, скорость ответа, SEO-технические факторы и доступность.
20+ параметров в одном числе: SSL, заголовки, скорость, SEO-технические факторы.
Каждый параметр с объяснением — что проверяется, что найдено, как исправить.
Сравнивайте Health Score в разные даты — видите прогресс или регресс.
Настройте автоматическую проверку Health Score и получайте уведомление при падении балла.
быстрый аудит перед релизом
оценка технической базы
проверка сайта клиента
экспресс-аудит заголовков
История Health Score проверок и мониторинг состояния сайта в реальном времени.
Зарегистрироваться (FREE)Да, как стартовая точка. pgtune.leopard.in.ua генерирует base config. Дальше — подкручиваете под свой workload (OLTP vs OLAP).
При таблицах > 100 GB или вырезании старых данных. Для < 10 GB — лишняя сложность.
При > 200 concurrent — да, Postgres per-connection backend съедает 10 MB RAM + контекст-свитчи.
Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.