Skip to content

Тюнинг производительности PostgreSQL

Коротко:

Первые 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.

Попробовать бесплатно →

Детали

  • shared_buffers по умолчанию 128 MB — ставьте 25% RAM (4 GB RAM → 1 GB)
  • work_mem влияет на JOIN/ORDER — too low = disk sort, too high = OOM
  • pg_stat_statements: CREATE EXTENSION + 20 MB RAM, stats за все запросы
  • pgbouncer перед Postgres: transaction pool, 10k клиентов → 100 connections
  • EXPLAIN (ANALYZE, BUFFERS) показывает реальный план + disk reads

Пример

-- 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;

Связанные

Оценка 0–100Единый балл здоровья сайта
SSL + SecurityБезопасность и сертификат
ПроизводительностьСкорость ответа и кеширование
SEO-сигналыrobots.txt, sitemap, каноникалы

Почему нам доверяют

100
балльная шкала
SSL
SSL + HTTP заголовки
10+
критериев оценки
Free
без регистрации

Как это работает

1

Введите URL сайта

2

Анализируем 10+ факторов

3

Получите общий балл

Что такое Health Score?

Health Score — комплексная оценка технического состояния сайта по 20+ параметрам: SSL, заголовки безопасности, скорость ответа, SEO-технические факторы и доступность.

Комплексная оценка

20+ параметров в одном числе: SSL, заголовки, скорость, SEO-технические факторы.

Детальный разбор

Каждый параметр с объяснением — что проверяется, что найдено, как исправить.

Динамика изменений

Сравнивайте Health Score в разные даты — видите прогресс или регресс.

Мониторинг здоровья

Настройте автоматическую проверку Health Score и получайте уведомление при падении балла.

Кому это нужно

Разработчики

быстрый аудит перед релизом

SEO-специалисты

оценка технической базы

Маркетологи

проверка сайта клиента

Безопасники

экспресс-аудит заголовков

Частые ошибки

Игнорировать красные параметрыКрасный параметр — критичная проблема. Начинайте исправление с них, не с жёлтых.
Проверять только главнуюПроблема может быть на подстраницах. Проверяйте ключевые разделы и посадочные страницы.
Не перепроверять после правокПосле каждого исправления перезапустите проверку и убедитесь, что балл вырос.
Считать 80+ баллов достаточнымСтремитесь к 95+. Каждый красный пункт — это риск для SEO или безопасности.

Лучшие практики

Исправляйте по приоритетамКрасные > жёлтые > синие. Критичные проблемы сначала.
Проверяйте регулярноЕженедельная проверка Health Score помогает заметить деградацию до того, как она влияет на SEO.
Используйте мониторингПодключите автоматический HTTP-монитор — он первым заметит недоступность.
Сравнивайте с конкурентамиПроверьте Health Score ближайшего конкурента — это отличный ориентир для приоритизации.

Получите больше с бесплатным аккаунтом

История Health Score проверок и мониторинг состояния сайта в реальном времени.

Зарегистрироваться (FREE)

Больше по теме

Часто задаваемые вопросы

PgTune — можно верить?

Да, как стартовая точка. pgtune.leopard.in.ua генерирует base config. Дальше — подкручиваете под свой workload (OLTP vs OLAP).

Когда нужны partition'ы?

При таблицах > 100 GB или вырезании старых данных. Для < 10 GB — лишняя сложность.

Connection pooler критичен?

При > 200 concurrent — да, Postgres per-connection backend съедает 10 MB RAM + контекст-свитчи.