Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Call of Postgres: Advanced Operations. Part V.

Call of Postgres: Advanced Operations. Part V.

Slides from my tutorial at PgDay 2017 St.Petersburg, Russia

Alexey Lesovsky

July 05, 2017
Tweet

More Decks by Alexey Lesovsky

Other Decks in Education

Transcript

  1. План 05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные

    соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
  2. План 05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные

    соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
  3. Настройка логирования 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
  4. План 05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные

    соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
  5. Удаление pg_xlog 05 dataegret.com Когда нет места на диске, в

    первую очередь удаляют логи! Постгресовый лог – второе место куда следует смотреть если что-то не так. Не следует выключать postgres после удаления. pg_resetxlog – часть данных о транзакциях будет потеряна или повреждена.
  6. План 05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные

    соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
  7. Вредные соединения 05 dataegret.com pg_stat_activity – первое место куда стоит

    смотреть когда что-то не так. Idle/waiting/long транзакции = плохо. Waiting/long запросы = относительно плохо. pg_locks – для разбора причин блокировок pg_cancel_backend(), pg_terminate_backend() – и никогда KILL -9.
  8. План 05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные

    соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
  9. Bloat таблиц и индексов 05 dataegret.com MVCC это прекрасно, но

    есть и минусы. UPDATE = DELETE + INSERT. Вакуум призван наводить порядок – но есть нюансы. Pgstattuple contrib. Pgcompacttable/pg_reorg.
  10. План 05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные

    соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
  11. Работа с запросами 05 dataegret.com И снова pg_stat_activity. pg_stat_statements contrib

    – следует включать всегда. Используйте отчеты. pg_stat_statements_reset().
  12. План 05 dataegret.com Обзор статистики. Настройка логирования. Удаление pg_xlog. Вредные

    соединения. Bloat таблиц и индексов. Работа с запросами. Неравномерная производительность.
  13. Резюме 05 dataegret.com Важно знать про статистику и уметь ею

    пользоваться. Пишите свои stats views и запросы. Не пренебрегайте постгресовыми логами.