Лаг репликации PostgreSQL в секундах

Наш классический шард PostgreSQL состоит из мастера и двух реплик. Мы мониторим тот факт, что реплик ровно столько, сколько должно быть (зажигаем WARN, если осталась одна, и CRIT, если реплик не осталось). И мониторим отставание реплик, а именно replay_location. Всё это делается парой простых запросов в pg_stat_replication …

more ...

PostgreSQL 9.4 и pg_repack

У нас есть сценарии хранения в БД остывающих UGC-данных. Чем старше данные, тем реже за ними приходят. Таблицы с такими данными мы партиционируем по времени и по мере остывания данных перемещаем их с SSD-дисков на SATA. Это даёт очень некислую экономию на стоимости железа. В PostgreSQL есть родной …

more ...

PostgreSQL и SystemTap

Пролог

Однажды мы стали наблюдать странные проблемы с производительностью PostgreSQL 9.4 на пишущей нагрузке с большим shared_buffers. Сама проблема хорошо описана тут, но она не относится к теме поста. Поскольку PostgreSQL не имеет аналога интерфейса ожиданий Oracle, мы написали пару простых SystemTap скриптов для локализации проблемы. Ниже немного …

more ...