Найти в Дзене
Postgres DBA

Забудьте о "стандартной" конфигурации. Реальная производительность PostgreSQL рождается в недрах ОС.

Когда PostgreSQL замедляется, первая мысль — апгрейд сервера. Однако реальный эксперимент показал, что прирост в 65% можно получить, просто правильно настроив Linux. Глоссарий терминов | Postgres DBA | Дзен GitHub - Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL 📃Статья «Не апгрейд, а оптимизация» наглядно демонстрирует, что путь к максимальной производительности СУБД PostgreSQL лежит не только через тонкую настройку её внутренних механизмов, но и через оптимизацию операционной системы, на которой она работает. Проведённые эксперименты убедительно доказывают, что игнорирование этого «фундамента» делает любые бенчмарки и сравнения неполными, а зачастую и некорректными. ℹ️Ключевой вывод исследования заключается в том, что целенаправленная настройка подсистем ввода-вывода (I/O), кэширования и планировщика задач Linux позволила увеличить операционную скорость PostgreSQL в среднем на 65% без изменения конфигурации самой СУ

Производительность рождается на стыке слоёв
Производительность рождается на стыке слоёв

Когда PostgreSQL замедляется, первая мысль — апгрейд сервера. Однако реальный эксперимент показал, что прирост в 65% можно получить, просто правильно настроив Linux.

Глоссарий терминов | Postgres DBA | Дзен

GitHub - Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL

📃Статья «Не апгрейд, а оптимизация» наглядно демонстрирует, что путь к максимальной производительности СУБД PostgreSQL лежит не только через тонкую настройку её внутренних механизмов, но и через оптимизацию операционной системы, на которой она работает. Проведённые эксперименты убедительно доказывают, что игнорирование этого «фундамента» делает любые бенчмарки и сравнения неполными, а зачастую и некорректными.

ℹ️Ключевой вывод исследования заключается в том, что целенаправленная настройка подсистем ввода-вывода (I/O), кэширования и планировщика задач Linux позволила увеличить операционную скорость PostgreSQL в среднем на 65% без изменения конфигурации самой СУБД или апгрейда аппаратного обеспечения.

Это радикально меняет представление о том, где искать резервы для роста.

ℹ️Наиболее значимый прирост был достигнут за счёт следующих изменений в ОС:

Управление кэшем записи:

  • Уменьшение параметров vm.dirty_ratio и vm.dirty_background_ratio сделало запись данных на диск более частой, но менее объёмной, что снизило задержки в пиковые моменты.

Выбор планировщика ввода-вывода:

  • Переход на планировщик mq-deadline для дискового массива обеспечил более предсказуемое и сбалансированное выполнение операций чтения и записи по сравнению с планировщиком по умолчанию.

Оптимизация файловой системы:

  • Монтирование тома данных с опциями noatime и nodiratime исключило затратные операции обновления времени последнего доступа к файлам, что существенно снизило нагрузку на диск.

Настройка предварительного чтения:

  • Корректировка параметра read_ahead_kb позволила эффективнее загружать данные в кэш, оптимизируя работу с последовательными операциями.

Таким образом, статья устанавливает новый обязательный стандарт для публикаций о производительности PostgreSQL. ⚠️Теперь любое сравнение или бенчмарк должны в обязательном порядке содержать не только детальную конфигурацию СУБД (версия, размеры буферов, настройки памяти), но и полную информацию о ключевых параметрах операционной системы.⚠️ Без этого контекста результаты тестов теряют объективность и воспроизводимость, так как потенциально скрывают узкие места, обусловленные не СУБД, а её окружением.

ℹ️Производительность базы данных — это комплексный результат, и её истинная оценка начинается с прозрачности всех слоёв стека технологий.

P.S.

‼️Игнорирование операционной системы в тестах производительности — это не просто упущение, а фундаментальная ошибка методологии. Настройки ОС перестают быть «фоном» и становятся полноправным участником эксперимента.

Отныне прозрачность в этом вопросе — признак качественного исследования и уважения к аудитории.💯