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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Alexey Lesovsky
July 05, 2017
Education
0
33
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
440
PostgreSQL High Availability in 2019
lesovsky
0
450
Top developer's mistakes when working with PostgreSQL
lesovsky
1
160
Let's Pull the Plug On the Autovacuum (EN)
lesovsky
0
1.2k
Troubleshooting PostgreSQL for Developers (RU)
lesovsky
2
360
Troubleshooting PostgreSQL Streaming Replication
lesovsky
0
1k
Call of Postgres: Advanced Operations. Part I.
lesovsky
0
70
Call of Postgres: Advanced Operations. Part II.
lesovsky
0
95
Other Decks in Education
See All in Education
React完全入門
mickey_kubo
1
120
コマンドラインを見直そう(1995年からタイムリープ)
sapi_kawahara
0
660
✅ レポート採点基準 / How Your Reports Are Assessed
yasslab
PRO
0
280
都市の形成要因と 「都市の余白」のあり方
sakamon
0
160
Introduction - Lecture 1 - Next Generation User Interfaces (4018166FNR)
signer
PRO
2
4.4k
Chapitre_2_-_Partie_2.pdf
bernhardsvt
0
170
Padlet opetuksessa
matleenalaakso
10
15k
Introduction - Lecture 1 - Information Visualisation (4019538FNR)
signer
PRO
0
5.1k
多様なメンター、多様な基準
yasulab
PRO
5
19k
くまのココロンともぐらのロジ
frievea
0
150
TinyGoをWebブラウザで動かすための方法+アルファ_20260201
masakiokuda
2
230
Cifrado asimétrico
irocho
0
380
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
How STYLIGHT went responsive
nonsquared
100
6k
Everyday Curiosity
cassininazir
0
130
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
83
Designing for Timeless Needs
cassininazir
0
130
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
120
HDC tutorial
michielstock
1
390
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
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]