В субботу, в 2 часа ночи, разбираясь с очередной аварией в Postgres на Heroku (запросы по 35 минут, IOPS на пределе), автор статьи понял, что пора уже разобраться по-человечески: что вообще значит читать с диска? Оказалось, что между SELECTом и железкой аж три слоя кэширования: shared buffers (внутренний кэш Postgres), page cache (кэш на уровне ядра Linux) и сам диск (в случае Heroku - сетевой EBS от AWS). Покопавшись в логах, он выяснил, что проблема не в железе, а в кривых запросах - они тупо выгребали по индексу десятки тысяч строк с нужным id, потом применяли фильтры к JSONB и выбрасывали почти всё, сжигая IOPS и читая сотни мегабайт с диска впустую
17.02.2026
Похожее
26.03.2026
PostgreSQL с Patroni
В статье про создание высокодоступного кластера PostgreSQL с Patroni. Автор ...
05.03.2026
Что такое транзакции?
В этой статье автор на пальцах объясняет, как работают транзакции в PostgreSQL и...
02.03.2026
Блокировки в PG
Прикольный итерактивный туториал по всем возможны блокировкам в PostgreSQL. И не...
18.02.2026
Репликация Valkey
Напомню, что Valkey — это по-настоящему опенсорсная замена Redis (у которого рез...