Call of Postgres: Advanced Operations Alexey Lesovsky lesovsky@gmail.com
Troubleshooting: практика 05
План05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
Обзор статистики05 dataegret.com # psql -c "dv pg_stat*" # psql -c "df *xlog*"
План05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
Настройка логирования05 dataegret.com По-умолчанию, логирование очень бедное. Логирование запросов. Логирование прочих событий. Подробность логирования.
Настройка логирования05 dataegret.com log_checkpoints = on log_temp_files = on log_lock_waits = on track_io_timings = on track_functions = pl log_min_duration_statements = 1000 log_line_prefix = '%m %p %u@%d from %h [txid: %x vxid: %v] %i ' log_timezone = 'C' log_autovacuum_min_duration = 10000
План05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
Удаление pg_xlog05 dataegret.com Когда нет места на диске, в первую очередь удаляют логи! Постгресовый лог – второе место куда следует смотреть если что-то не так. Не следует выключать postgres после удаления. pg_resetxlog – часть данных о транзакциях будет потеряна или повреждена.
План05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
Вредные соединения05 dataegret.com pg_stat_activity – первое место куда стоит смотреть когда что-то не так. Idle/waiting/long транзакции = плохо. Waiting/long запросы = относительно плохо. pg_locks – для разбора причин блокировок pg_cancel_backend(), pg_terminate_backend() – и никогда KILL -9.
План05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
Bloat таблиц и индексов05 dataegret.com MVCC это прекрасно, но есть и минусы. UPDATE = DELETE + INSERT. Вакуум призван наводить порядок – но есть нюансы. Pgstattuple contrib. Pgcompacttable/pg_reorg.
План05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
Работа с запросами05 dataegret.com И снова pg_stat_activity. pg_stat_statements contrib – следует включать всегда. Используйте отчеты. pg_stat_statements_reset().
План05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
Неравномерная производительность05 dataegret.com Фоновые процессы могут мешать клиентским бэкендам. Присматривайте за autovacuum и checkpointer – они любят диски.
Резюме05 dataegret.com Важно знать про статистику и уметь ею пользоваться. Пишите свои stats views и запросы. Не пренебрегайте постгресовыми логами.
Спасибо за внимание dataegret.com lesovsky@gmail.com

Call of Postgres: Advanced Operations (part 5)