Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: write amplification, ssd, storage

Что такое “write amplification” и как оно проявляется в PostgreSQL, SSD-дисках и LSM-деревьях?

Проверяет понимание того, как данные физически записываются на диск, почему современные системы хранилищ делают много лишних записей, и как это влияет на производительность.

Короткий ответ

Write amplification — это эффект, когда система записывает на диск намного больше данных, чем было изменено логически. В PostgreSQL это проявляется через WAL + страницы 8KB, в SSD — через перезапись больших erase-block, в LSM-деревьях — через постоянное перемещение данных между уровнями.

Длинный ответ

Write amplification (WA) — это феномен, при котором фактический объём записи на диск превышает логический объём данных, который изменил пользователь. Это важно для производительности, износа SSD и прогнозирования реального throughput.

PostgreSQL

В Postgres WA возникает из-за:

  1. WAL (Write-Ahead Log)

    Каждая операция дублируется: запись идёт в WAL и затем — в основную таблицу.

  2. Страничная организация (8KB pages)

    Даже если изменился 1 байт, переписывается вся страница.

  3. VACUUM / HOT-update

    Старые версии строк не удаляются сразу — VACUUM создаёт дополнительные операции записи.

  4. CHECKPOINT

    На checkpoint Postgres вынужден сбрасывать dirty pages на диск.

Итог: WA для Postgres может достигать 3–10x при высокой write-нагрузке.

SSD

SSD выполняют запись блоками («erase blocks»), например по 256 KB.

Если изменить 4 KB, SSD перезапишет весь 256 KB блок → WA = 64x.

Современные контроллеры mitigate проблему через:

  • wear leveling

  • over-provisioning

  • write combining

LSM (Levelled Storage Merge Trees)

Используются в ClickHouse, RocksDB, Cassandra.

Write amplification возникает из-за compaction — данные многократно перемещаются между уровнями.

WA в LSM может достигать 10–30x, зато скорость записи остаётся высокой.

Вывод

Write amplification — ключевой фактор в производительности хранилищ. Его нужно учитывать при проектировании систем с высокой нагрузкой на запись.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    9

Навыки

  • Postgres

    Postgres

Ключевые слова

#write amplification

#ssd

#storage

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.