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
0
26
Call of Postgres: Advanced Operations. Part IV.
Slides from my tutorial at PgDay 2017 St.Petersburg, Russia
Alexey Lesovsky
July 05, 2017
Tweet
Share
More Decks by Alexey Lesovsky
See All by Alexey Lesovsky
PostgreSQL Scaling Usecases
lesovsky
0
110
Patroni failure stories, or How to crash yout PostgreSQL cluster
lesovsky
0
420
PostgreSQL High Availability in 2019
lesovsky
0
360
Top developer's mistakes when working with PostgreSQL
lesovsky
1
140
Let's Pull the Plug On the Autovacuum (EN)
lesovsky
0
1.2k
Troubleshooting PostgreSQL for Developers (RU)
lesovsky
2
350
Troubleshooting PostgreSQL Streaming Replication
lesovsky
0
980
Call of Postgres: Advanced Operations. Part I.
lesovsky
0
64
Call of Postgres: Advanced Operations. Part II.
lesovsky
0
79
Other Decks in Education
See All in Education
JPCERTから始まる草の根活動~セキュリティ文化醸成のためのアクション~
masakiokuda
0
220
Ch1_-_Partie_1.pdf
bernhardsvt
0
250
万博マニアックマップを支えるオープンデータとその裏側
barsaka2
0
820
生態系ウォーズ - ルールブック
yui_itoshima
1
250
データで見る赤ちゃんの成長
syuchimu
0
270
理想の英語力に一直線!最高効率な英語学習のすゝめ
logica0419
6
390
探査機自作ゼミ2025スライド
sksat
3
780
20250625_なんでもCopilot 一年の振り返り
ponponmikankan
0
360
Human-AI Interaction - Lecture 11 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
530
2026 g0v 零時政府年會啟動提案 / g0v Summit 2026 Kickstart
rschiang
0
270
2025年度春学期 統計学 第15回 分布についての仮説を検証する ー 仮説検定(2) (2025. 7. 17)
akiraasano
PRO
0
110
Présentation_1ère_Spé_2025.pdf
bernhardsvt
0
240
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
95
14k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
4 Signs Your Business is Dying
shpigford
184
22k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
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]