Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Call of Postgres: Advanced Operations. Part IV.
Search
Alexey Lesovsky
July 05, 2017
Education
38
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Call of Postgres: Advanced Operations. Part IV.
Slides from my tutorial at PgDay 2017 St.Petersburg, Russia
Alexey Lesovsky
July 05, 2017
More Decks by Alexey Lesovsky
See All by Alexey Lesovsky
PostgreSQL Scaling Usecases
lesovsky
0
130
Patroni failure stories, or How to crash yout PostgreSQL cluster
lesovsky
0
480
PostgreSQL High Availability in 2019
lesovsky
0
480
Top developer's mistakes when working with PostgreSQL
lesovsky
1
180
Let's Pull the Plug On the Autovacuum (EN)
lesovsky
0
1.3k
Troubleshooting PostgreSQL for Developers (RU)
lesovsky
2
370
Troubleshooting PostgreSQL Streaming Replication
lesovsky
0
1.1k
Call of Postgres: Advanced Operations. Part I.
lesovsky
0
84
Call of Postgres: Advanced Operations. Part II.
lesovsky
0
110
Other Decks in Education
See All in Education
Case Studies and Future Research - Lecture 12 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
240
sepm-training-sample
levii
0
160
生成AI時代のエンジニア育成について考えてみた
akasan
0
220
Visionary Initiative: Materials-Positive Society — Evolving “Things,” empowering a positive society | Science Tokyo
sciencetokyo
PRO
0
200
[2026前期火5] 論理学(京都大学文学部 前期 第4回)「 ならば(→)の導入と証明ネット」
yatabe
0
540
0513
cbtlibrary
0
270
学生のうちに考えておきたい信頼の話
suisan
1
720
良書紹介08_ 頭のいい子がやっているすごいグラフの読み方
bunnchinn3
0
140
Course Review - Lecture 13 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
2.4k
形骸化しない社内勉強会の取り組み - オーナーシップの作り方 / In-house study session
soudai
PRO
1
200
!コスパよくインターンに受かる方法!
ruribou
1
330
[2026前期火5] 論理学(京都大学文学部 前期 第14回)「計算は、証明ではない——ハルシネーションを三層ハーモニーで診る」
yatabe
0
210
Featured
See All Featured
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
380
What's in a price? How to price your products and services
michaelherold
247
13k
Unsuck your backbone
ammeep
672
58k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
550
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
490
Facilitating Awesome Meetings
lara
57
7.1k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
780
Crafting Experiences
bethany
1
260
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
270
Transcript
Call of Postgres: Advanced Operations Alexey Lesovsky
[email protected]
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
[email protected]