Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 AWR "для бедных". Представляю модуль pg_profile.  [new]
Андрей Зубков
Member

Откуда: Москва
Сообщений: 7
Всем привет!

Мне сильно нужен был механизм, подобный оракловому AWR. Хороших и простых готовых аналогов не нашел, и решил сделать свой. Модуль выполнен в виде extension, так что относительно легко устанавливается и обновляется при выходе новых версий. Написан на чистом pl/pgsql, так что прост в понимании.
Представляю модуль широкой общественности - пригодится и DBA и разработчикам. Особе ценна будет обратная связь - может кто багу найдет, или какие-нибудь пожелания дополнительные возникнут...

Положил сюда:
https://github.com/zubkov-andrei/pg_profile
7 сен 17, 13:31    [20778513]     Ответить | Цитировать Сообщить модератору
 Re: AWR "для бедных". Представляю модуль pg_profile.  [new]
mefman
Member

Откуда:
Сообщений: 1697
Андрей Зубков
Всем привет!

Мне сильно нужен был механизм, подобный оракловому AWR. Хороших и простых готовых аналогов не нашел, и решил сделать свой. Модуль выполнен в виде extension, так что относительно легко устанавливается и обновляется при выходе новых версий. Написан на чистом pl/pgsql, так что прост в понимании.
Представляю модуль широкой общественности - пригодится и DBA и разработчикам. Особе ценна будет обратная связь - может кто багу найдет, или какие-нибудь пожелания дополнительные возникнут...

Положил сюда:
https://github.com/zubkov-andrei/pg_profile

а это не смотрели https://github.com/dalibo/pgbadger?
7 сен 17, 13:59    [20778632]     Ответить | Цитировать Сообщить модератору
 Re: AWR "для бедных". Представляю модуль pg_profile.  [new]
Андрей Зубков
Member

Откуда: Москва
Сообщений: 7
mefman,

Поправьте меня если я ошибаюсь, но мне кажется что эта утилита работает исключительно с текстовыми логами сервера... Посмотрел поверхностно только сейчас, не знаю, попадают ли в текстовый лог данные, достаточные для получения данных, подобных pg_stat_statements. Не говоря уже о том, что логирование всех запросов, происходящих на сервере в текстовый лог сильно влияет на производительность...
Ну и в моем модуле есть данные не только по запросам, а еще и по различным объектам схем. Короче, по данным статистических представлений, доступных в PostgreSQL.
7 сен 17, 14:09    [20778679]     Ответить | Цитировать Сообщить модератору
 Re: AWR "для бедных". Представляю модуль pg_profile.  [new]
ora601
Member

Откуда:
Сообщений: 749
Андрей Зубков
Посмотрел поверхностно только сейчас, не знаю, попадают ли в текстовый лог данные, достаточные для получения данных, подобных pg_stat_statements.


Что интересно, это то что там намного больше полезных данных чем в pg_stat_statements.

А вообще с тем количеством метрик которые позволяет получать постгрес - можно просто обойтись несколькими самописными views :)


Кстати, тула снепшотит wait events 9.6 версии ? Если нет, то добавь хоть чем то будет лучше остальных)
8 сен 17, 13:15    [20781618]     Ответить | Цитировать Сообщить модератору
 Re: AWR "для бедных". Представляю модуль pg_profile.  [new]
Андрей Зубков
Member

Откуда: Москва
Сообщений: 7
ora601,

К сожалению, самописных вьюх никак недостаточно - обязательно нужно где-то хранить данные в предыдущие моменты времени. Ни одна вьюха в прошлое заглянуть не может. Нужны таблицы, и в них надо периодически данные складывать.

Предлагаемый механизм как раз избавляет администратора от необходимости городить весь этот огород - поставил один extension и можешь с его помощью отчеты строить, все самое нужное, на мой взгляд, в нем есть.

Полезных данных в логе, может, и много, но предлагаемый механизм предназначен для начала поисков проблем производительности, для этого содержащихся данных вполне достаточно.
А вот из-за оверхеда, связанного с необходимостью записи в журнал, применение методов, основанных на анализе журналов неприменимо на нагруженных системах от слова никак.

По поводу wait events версии 9.6. В дело можно пустить только статистики ожидания - накопленные суммы времени ожиданий для разных серверных процессов. Такого в PostgreSQL еще нет. Все что есть - это возможность по запросу в pg_stat_activity понять чего процесс ждет именно сейчас, но без времени ожидания данные эти бесполезны. Не говоря о том, что для того чтобы получить общую картину запросы эти необходимо выполнять часто, и это все равно не даст сколь-нибудь достоверных данных. Так что wait events, до сих пор невозможен.
8 сен 17, 13:32    [20781698]     Ответить | Цитировать Сообщить модератору
 Re: AWR "для бедных". Представляю модуль pg_profile.  [new]
ora601
Member

Откуда:
Сообщений: 749
Андрей Зубков
Не говоря о том, что для того чтобы получить общую картину запросы эти необходимо выполнять часто, и это все равно не даст сколь-нибудь достоверных данных. Так что wait events, до сих пор невозможен.


Иронично что разработчики самого постгрес тормозят развитие хороших мониторинг тулс.

Андрей Зубков
применение методов, основанных на анализе журналов неприменимо на нагруженных системах от слова никак.


Depends, запросы то бывают разные по продолжительности, если его положить на любой другой диск то не такой уж и оверхед, ну разве что CPU остаеться да.
8 сен 17, 13:39    [20781722]     Ответить | Цитировать Сообщить модератору
 Re: AWR "для бедных". Представляю модуль pg_profile.  [new]
Андрей Зубков
Member

Откуда: Москва
Сообщений: 7
ora601
Иронично что разработчики самого постгрес тормозят развитие хороших мониторинг тулс.

На всё есть довольно веские причины, скорее всего архитектурного характера. Если бы это было просто - давно бы сделали.

ora601
Depends, запросы то бывают разные по продолжительности, если его положить на любой другой диск то не такой уж и оверхед, ну разве что CPU остаеться да.

Понятно, что для какого-нибудь неподъемного DSS/DW можно и логи анализировать. Но это же не универсальное решение, так же как добавление в конфигурацию отдельных дисков, SSD, рамдисков и прочего такого же... Подозреваю что на нагруженной системе лог будет за час расти настолько что его тупо негде будет хранить (особенно, учитывая что хранилище должно быть относительно быстрым), не говоря уже о времени, необходимом на парсинг.
8 сен 17, 14:12    [20781863]     Ответить | Цитировать Сообщить модератору
 Re: AWR "для бедных". Представляю модуль pg_profile.  [new]
PgSQLanonymous3
Member

Откуда:
Сообщений: 41
ora601
Иронично что разработчики самого постгрес тормозят развитие хороших мониторинг тулс.

Что Вы имеете в виду?
8 сен 17, 15:00    [20782085]     Ответить | Цитировать Сообщить модератору
 Re: AWR "для бедных". Представляю модуль pg_profile.  [new]
PgSQLanonymous3
Member

Откуда:
Сообщений: 41
Андрей Зубков
Понятно, что для какого-нибудь неподъемного DSS/DW можно и логи анализировать. Но это же не универсальное решение, так же как добавление в конфигурацию отдельных дисков, SSD, рамдисков и прочего такого же...
Почему? Зачастую это самое эффективное решение.

Андрей Зубков
Подозреваю что на нагруженной системе лог будет за час расти настолько что его тупо негде будет хранить (особенно, учитывая что хранилище должно быть относительно быстрым), не говоря уже о времени, необходимом на парсинг.
Я слышал, что многие используют как раз на высоконагруженных системах...
Кстати: http://blog.endpoint.com/2012/06/logstatement-postgres-all-full-logging.html
8 сен 17, 15:04    [20782107]     Ответить | Цитировать Сообщить модератору
 Re: AWR "для бедных". Представляю модуль pg_profile.  [new]
acidophilus
Member

Откуда:
Сообщений: 98
Андрей Зубков
Всем привет!

Мне сильно нужен был механизм, подобный оракловому AWR. Хороших и простых готовых аналогов не нашел, и решил сделать свой. Модуль выполнен в виде extension, так что относительно легко устанавливается и обновляется при выходе новых версий. Написан на чистом pl/pgsql, так что прост в понимании.
Представляю модуль широкой общественности - пригодится и DBA и разработчикам. Особе ценна будет обратная связь - может кто багу найдет, или какие-нибудь пожелания дополнительные возникнут...

Положил сюда:
https://github.com/zubkov-andrei/pg_profile



багов полагаю там полно
11 сен 17, 13:24    [20786580]     Ответить | Цитировать Сообщить модератору
 Re: AWR "для бедных". Представляю модуль pg_profile.  [new]
Андрей Зубков
Member

Откуда: Москва
Сообщений: 7
PgSQLanonymous3
Почему? Зачастую это самое эффективное решение.

А каковы критерии эффективности? Иначе это вода в ступе...
Я разрабатывал свой модуль преследуя следующие основные критерии эффективности:
- Простота установки и использования. Минимум необходимых действий и отсутствие необходимости в установке и настройке дополнительного ПО
- Отсутствие необходимости в изменении аппаратного ландшафта.
- Минимальное воздействие на производительность СУБД.

PgSQLanonymous3
Я слышал, что многие используют как раз на высоконагруженных системах...
Кстати: http://blog.endpoint.com/2012/06/logstatement-postgres-all-full-logging.html


Сходил, почитал... И что мы там видим? Надо воткнуть в сервер отдельные диски для логов, настроить специальным образом файловые системы, оптимизируя запись логов, при большом росте логов отправлять их в сторонку на отдельный сервер или (о ужас) на ленту. Разве это может считаться удобным универсальным решением?
11 сен 17, 14:11    [20786812]     Ответить | Цитировать Сообщить модератору
 Re: AWR "для бедных". Представляю модуль pg_profile.  [new]
Андрей Зубков
Member

Откуда: Москва
Сообщений: 7
acidophilus
багов полагаю там полно

А я тоже так думаю. Вот поэтому я и опубликовал модуль. Возможно Вы найдете парочку багов, сообщите мне, и модуль станет лучше, а всем кто будет его использовать станет немного легче жить.
11 сен 17, 14:13    [20786824]     Ответить | Цитировать Сообщить модератору
 Re: AWR "для бедных". Представляю модуль pg_profile.  [new]
Андрей Зубков
Member

Откуда: Москва
Сообщений: 7
Положил сегодня свежее обновление, поправил довольно много разных ошибок и применил генерацию (и агрегирование статистик) queryid по аналогии с pgcenter.

По прежнему жду конструктивных отзывов :)
18 сен 17, 16:39    [20804080]     Ответить | Цитировать Сообщить модератору
 Re: AWR "для бедных". Представляю модуль pg_profile.  [new]
grufos
Member

Откуда: Москва
Сообщений: 102
Андрей Зубков,

Спасибо за аннос расширения.
Попробую воспользоваться.
О результатах напишу
20 сен 17, 14:16    [20809027]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить