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
29
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
430
PostgreSQL High Availability in 2019
lesovsky
0
380
Top developer's mistakes when working with PostgreSQL
lesovsky
1
150
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
990
Call of Postgres: Advanced Operations. Part I.
lesovsky
0
64
Call of Postgres: Advanced Operations. Part II.
lesovsky
0
83
Other Decks in Education
See All in Education
日本の情報系社会人院生のリアル -JAIST 修士編-
yurikomium
1
130
GOVERNOR ADDRESS:2025年9月29日合同公式訪問例会:2720 Japan O.K. ロータリーEクラブ、2025年10月6日卓話:藤田 千克由 氏(国際ロータリー第2720地区 2025-2026年度 ガバナー・大分中央ロータリークラブ・大分トキハタクシー(株)顧問)
2720japanoke
0
630
2026 g0v 零時政府年會啟動提案 / g0v Summit 2026 Kickstart
rschiang
0
370
EVOLUCIÓN DE LAS NEUROCIENCIAS EN LOS CONTEXTOS ORGANIZACIONALES
jvpcubias
0
180
データで見る赤ちゃんの成長
syuchimu
0
320
H5P-työkalut
matleenalaakso
4
40k
[FUN Open Campus 2025] 何でもセンシングしていいですか?
pman0214
0
250
理想の英語力に一直線!最高効率な英語学習のすゝめ
logica0419
6
430
1014
cbtlibrary
0
320
Transición del Management al Neuromanagement
jvpcubias
0
240
附属科学技術高等学校の概要|Science Tokyo(東京科学大学)
sciencetokyo
PRO
0
1.3k
中央教育審議会 教育課程企画特別部会 情報・技術ワーキンググループに向けた提言 ー次期学習指導要領での情報活用能力の抜本的向上に向けてー
codeforeveryone
0
320
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Mobile First: as difficult as doing things right
swwweet
225
10k
How to train your dragon (web standard)
notwaldorf
97
6.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Docker and Python
trallard
46
3.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
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]