SlideShare a Scribd company logo
Call of Postgres:
Advanced Operations
Alexey Lesovsky
lesovsky@gmail.com
Troubleshooting:
теория
04
План04
dataegret.com
Какие есть инструменты.
Обнаружение проблем.
Исследование проблем.
Инструменты04
dataegret.com
Инструменты бывают:
●
Сторонние.
●
Встроенные.
●
Самодельные.
Инструменты04
dataegret.com
Инструменты бывают:
●
Сторонние.
●
Встроенные.
●
Самодельные.
Большая часть основана на встроенной статистике.
Инструменты04
dataegret.com
Сторонние инструменты:
●
Консольные.
●
Web.
●
Плагины для систем мониторинга.
●
https://wiki.postgresql.org/wiki/Monitoring
Инструменты04
dataegret.com
Встроенные инструменты:
●
Системные функции и представления.
●
Contrib-модули.
●
Утилиты в комплекте (pgbench, pg_waldump, pg_test_fsync, etc.)
Инструменты04
dataegret.com
Самодельные инструменты:
●
Запросы к системным функциями и представлениям.
●
Ad-hoc скрипты на shell/perl/python/…
●
Системы управления конфигурациями.
Статистика04
dataegret.com
Как правило, всё основано на встроенной статистике:
●
pg_stat_database, pg_stat_database_conflicts;
●
pg_stat_replication, pg_stat_subscription, pg_replication_slots;
●
pg_stat_user_tables, pg_stat_user_indexes;
●
pg_statio_user_tables, pg_statio_user_indexes;
●
pg_stat_activity, pg_locks;
●
pg_stat_bgwriter, pg_stat_archiver, pg_stat_progress_vacuum;
●
pg_stat_statements, pg_buffercache, pg_stat_kcache.
●
…
Статистика04
dataegret.com
Статистика04
dataegret.com
pg_stat_database, pg_stat_database_conflicts:
●
Операции commit/rollback, read/insert/update/delete;
●
Чтение из кэша/диска;
●
deadlock'и, временные файлы, конфликты при восстановлении.
Статистика04
dataegret.com
pg_stat_replication, pg_stat_subscription, pg_replication_slots:
●
Статус standby-узлов, слотов репликации;
●
Лаг репликации;
●
Возраст запросов на standby-узлах.
Статистика04
dataegret.com
pg_stat_user_tables, pg_stat_user_indexes,
pg_statio_user_tables, pg_statio_user_indexes:
●
Количество операций доступа к таблице/индексу;
●
Количество IUD операций по таблицам;
●
Количество операций vacuum/analyze над таблицей;
●
Количество IO операций над таблицей/индексом.
Статистика04
dataegret.com
pg_stat_activity, pg_locks;
●
Текущая клиентская активность;
●
Вредная активность (idle/long transactions, waitings);
●
Информация о блокировках.
Статистика04
dataegret.com
pg_stat_bgwriter, pg_stat_archiver, pg_stat_progress_vacuum:
●
Checkpointer, Bgwriter, WAL Archiver;
●
Статус (auto)vacuum операций.
Статистика04
dataegret.com
pg_stat_statements, pg_buffercache, pg_stat_kcache:
●
Информация о выполненных запросах;
●
Лайтовое профилирование shared buffers;
●
Сколько «потрачено» на выполнении запросов.
Обнаружение проблем.04
dataegret.com
План:
●
Типы проблем.
●
Обнаружение источников.
Типы проблем04
dataegret.com
Использование ресурсов
Типы проблем04
dataegret.com
Использование ресурсов:
●
Неоптимальное выполнение запросов.
Типы проблем04
dataegret.com
Использование ресурсов:
●
Неоптимальное выполнение запросов.
●
Нагрузка от фоновых процессов.
Типы проблем04
dataegret.com
Использование ресурсов:
●
Неоптимальное выполнение запросов.
●
Нагрузка от фоновых процессов.
●
Накопившиеся проблемы.
Типы проблем04
dataegret.com
Использование ресурсов:
●
Неоптимальное выполнение запросов.
●
Нагрузка от фоновых процессов.
●
Накопившиеся проблемы.
●
Потенциально опасные ситуации «здесь и сейчас».
Типы проблем04
dataegret.com
Ошибки.
Типы проблем04
dataegret.com
Ошибки:
●
Клиентские ошибки.
Типы проблем04
dataegret.com
Ошибки:
●
Клиентские ошибки.
●
Сервисные ошибки.
Поиск и определение04
dataegret.com
Определение узкого места:
●
Список процессов (бэкенды vs. фоновые процессы);
●
Отчеты по запросам;
●
Отчеты по фоновым процессам;
●
Периодические отчеты;
●
postgresql.log;
●
Профилирование на коленке;
●
Профилирование (perf, systemtap, gdb, coredump, etc.).
Поиск и определение04
dataegret.com
Список процессов:
●
Только если вы хорошо знаете свой ворклоад;
●
pg_stat_activity;
●
pg_stat_statements;
●
pg_stat_functions.
Поиск и определение04
dataegret.com
Отчеты по запросам:
●
log_min_duration_statements + postgres log;
●
pg_stat_statements, pg_stat_kcache;
●
Log analyzers.
●
EXPLAIN
Поиск и определение04
dataegret.com
Отчеты по фоновым процессам:
●
pg_stat_bgwriter;
●
Autovacuum – postgres log, pg_stat_activity, pg_stat_progress_vacuum.
Поиск и определение04
dataegret.com
Периодические отчеты:
●
Отчеты об ошибках;
●
Неиспользуемые индексы;
●
Изменение размеров таблиц и индексов;
●
Bloat;
●
...
Поиск и определение04
dataegret.com
postgresql.log:
●
Второе место куда следует заглянуть, если что-то пошло не так;
●
Никакая детализация по-умолчанию.
●
log_line_prefix = '%m %p %u@%d from %h [vxid:%v txid:%x] [%i] '
Поиск и определение04
dataegret.com
Профилирование:
●
Если вдруг «подземный стук»;
●
Strace, Perf, SystemTap, BPF, etc...
●
Придется писать bug репорт в pgsql-hackers (как правило);
●
Проблема не решается быстро.
Резюме04
dataegret.com
Может показаться что инструментов много – но это не так.
Все инструменты крутятся вокруг встроенной статистики.
Нужно иметь представление о том что есть в статистике.
Вопросы?
dataegret.com lesovsky@gmail.com

More Related Content

PDF
Call of Postgres: Advanced Operations (part 5)
PDF
Call of Postgres: Advanced Operations (part 3)
PDF
Call of Postgres: Advanced Operations (part 2)
PDF
Call of Postgres: Advanced Operations (part 1)
PDF
PostgreSQL Streaming Replication
PDF
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PPTX
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
PDF
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
Call of Postgres: Advanced Operations (part 5)
Call of Postgres: Advanced Operations (part 3)
Call of Postgres: Advanced Operations (part 2)
Call of Postgres: Advanced Operations (part 1)
PostgreSQL Streaming Replication
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...

What's hot (20)

PDF
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
PPTX
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
PDF
Дмитрий Новиков - Tarantool в Badoo
PDF
Отладка и устранение проблем в PostgreSQL Streaming Replication.
PDF
Реализация восстановления после аварий / Сергей Бурладян (Avito)
PPTX
Mysql vs postgresql
PDF
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
PDF
PostgreSQL Vacuum: Nine Circles of Hell
PDF
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...
PDF
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
PDF
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
PDF
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
PDF
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
PDF
Современная операционная система: что надо знать разработчику / Александр Кри...
PDF
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
PDF
Хранение данных на виниле / Константин Осипов (tarantool.org)
PPTX
Основные кейсы использования in-memory СУБД на примере Тарантула и проектов M...
PDF
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...
PDF
Механика DDoS (Александр Крижановский)
PPTX
Dennis Anikin - Tarantool Case Studies in Mail.Ru Group
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Дмитрий Новиков - Tarantool в Badoo
Отладка и устранение проблем в PostgreSQL Streaming Replication.
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Mysql vs postgresql
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
PostgreSQL Vacuum: Nine Circles of Hell
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
Современная операционная система: что надо знать разработчику / Александр Кри...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Хранение данных на виниле / Константин Осипов (tarantool.org)
Основные кейсы использования in-memory СУБД на примере Тарантула и проектов M...
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...
Механика DDoS (Александр Крижановский)
Dennis Anikin - Tarantool Case Studies in Mail.Ru Group
Ad

Similar to Call of Postgres: Advanced Operations (part 4) (20)

PPTX
Monitoring-driven эксплуатация (rootconf2015)
PPTX
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
PPTX
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
PDF
20111002 information retrieval raskovalov_lecture3
PDF
Serghei Iakovlev "Chaos engineering in action"
PPTX
ACC - конструируем тест-план методом Google
PDF
Доклад "Мониторинг серверных приложений"
PPTX
Sqadays 2010 burmistrov_fomin_20101120(2)
PPTX
Оптимизация производительности нагруженных веб-систем на Java
PPTX
Шаги мануальщика к автоматизации на крупном проекте
PPTX
Практические аспекты организации процесса тестирования в государственных учре...
PPTX
Практические аспекты организации процесса тестирования в государственных учре...
PDF
Grail - CodeFest'2015
PDF
Robot Framework: универсальный инструмент автоматизатора
PDF
Grail: шаги для ваших Python-тестов
PPT
IntelliJ IDEA: architecture, performance, development process
PDF
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
PDF
Мониторинг и отладка MySQL: максимум информации при минимальных потерях / Све...
PPTX
Python Meetup
PPTX
Путь мониторинга, DevOps club в Grammarly
Monitoring-driven эксплуатация (rootconf2015)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
20111002 information retrieval raskovalov_lecture3
Serghei Iakovlev "Chaos engineering in action"
ACC - конструируем тест-план методом Google
Доклад "Мониторинг серверных приложений"
Sqadays 2010 burmistrov_fomin_20101120(2)
Оптимизация производительности нагруженных веб-систем на Java
Шаги мануальщика к автоматизации на крупном проекте
Практические аспекты организации процесса тестирования в государственных учре...
Практические аспекты организации процесса тестирования в государственных учре...
Grail - CodeFest'2015
Robot Framework: универсальный инструмент автоматизатора
Grail: шаги для ваших Python-тестов
IntelliJ IDEA: architecture, performance, development process
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потерях / Све...
Python Meetup
Путь мониторинга, DevOps club в Grammarly
Ad

More from Alexey Lesovsky (16)

PDF
Troubleshooting PostgreSQL with pgCenter
PDF
GitLab PostgresMortem: Lessons Learned
PDF
Troubleshooting PostgreSQL Streaming Replication
PDF
Tuning Linux for Databases.
PDF
Managing PostgreSQL with PgCenter
PDF
Nine Circles of Inferno or Explaining the PostgreSQL Vacuum
PDF
Deep dive into PostgreSQL statistics.
PDF
Streaming replication in practice
PDF
Streaming replication in practice
PDF
PostgreSQL Streaming Replication Cheatsheet
PDF
Deep dive into PostgreSQL statistics.
PDF
Deep dive into PostgreSQL statistics.
PDF
Pgcenter overview
PDF
Highload 2014. PostgreSQL: ups, DevOps.
PDF
PostgreSQL Troubleshoot On-line, (RITfest 2015 meetup at Moscow, Russia).
PDF
Linux tuning for PostgreSQL at Secon 2015
Troubleshooting PostgreSQL with pgCenter
GitLab PostgresMortem: Lessons Learned
Troubleshooting PostgreSQL Streaming Replication
Tuning Linux for Databases.
Managing PostgreSQL with PgCenter
Nine Circles of Inferno or Explaining the PostgreSQL Vacuum
Deep dive into PostgreSQL statistics.
Streaming replication in practice
Streaming replication in practice
PostgreSQL Streaming Replication Cheatsheet
Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.
Pgcenter overview
Highload 2014. PostgreSQL: ups, DevOps.
PostgreSQL Troubleshoot On-line, (RITfest 2015 meetup at Moscow, Russia).
Linux tuning for PostgreSQL at Secon 2015

Call of Postgres: Advanced Operations (part 4)