• Что мы делаем
  • Почему мы
  • Кредо
  • Команда
  • Клиенты
  • Блог
Связаться с нами
  • ru
  • en
  • Что мы делаем
  • Почему мы
  • Кредо
  • Команда
  • Клиенты
  • Блог
    • ru
    • en

Блог

Подписаться
Фильтры

Поиск

Поиск по блогу

Язык постов

Русский
  • Русский
  • English

Тэги

  • autovacuum
  • boguk
  • community
  • coronavirus
  • corporate
  • dba
  • diagnostic
  • ik
  • internals
  • kasimova
  • lesovsky
  • Linux
  • logs
  • monitoring
  • news
  • okmeter
  • partitioning
  • performance
  • pg_utils
  • pgbconsole
  • pgbouncer
  • pgcenter
  • pgcon
  • pgconfus
  • PGDay Russia
  • pgday.ru
  • pgsql-advocacy
  • postgres stats
  • postgresql
  • stats
  • sysctl
  • talk
  • tools
  • troubleshoot
  • vyegorov
  • zalando tech
  • диагностика
  • постгрес

Архив

Архивы

  • Ноябрь 2020
  • Октябрь 2020
  • Июль 2020
  • Апрель 2020
  • Март 2020
  • Октябрь 2019
  • Март 2019
  • Февраль 2019
  • Декабрь 2018
  • Ноябрь 2018
  • Октябрь 2018
  • Июнь 2018
  • Апрель 2018
  • Март 2018
  • Январь 2018
  • Ноябрь 2017
  • Октябрь 2017
  • Сентябрь 2017
  • Июль 2017
  • Май 2017
  • Апрель 2017
  • Март 2017
  • Февраль 2017
  • Октябрь 2016
  • Февраль 2016
  • Январь 2016
  • Декабрь 2015
  • Ноябрь 2015
  • Октябрь 2015
  • Сентябрь 2015
  • Июнь 2015
  • Май 2015
  • Апрель 2015
  • Март 2015
  • Июль 2014

Сообщать мне о новых постах в блоге Data Egret.
Я ознакомлен с Политикой конфиденциальности


Политика Конфиденциальности
ООО "ПГ-Консалтинг"
125047, Россия, г. Москва
ул. Бутырский вал, д. 5, эт. 4 пом. I ком. 406
Copyright © 2021 PostgreSQL-Consulting / Data Egret
Контакты

Обратитесь в Data Egret, и мы с радостью ответим на все ваши вопросы и поможем с подбором наилучшего решения для ваших задач.

Расскажите, что вас интересует

Далее
Контакты

Заполните, пожалуйста, форму ниже, чтобы мы могли с вами связаться в ближайшее время. Если вопрос срочный, напишите об этом в поле Комментарий.

Указанные данные будут использованы Data Egret исключительно для обработки вашего запроса. При необходимости ознакомьтесь с нашей Политикой конфиденциальности.
 
Спасибо за Ваше сообщение

Мы скоро свяжемся с Вами.

Ok
Семинары по PostgreSQL
Часто, в случае миграции на PostgreSQL возникает необходимость повысить уровень компетенций у существующей команды. Обучающие семинары от профессиональных ДБА могут стать подходящим решением с точки зрения эффективности и экономии времени и ресурсов.
Официальная документация PostgreSQL и другие полезные онлайн-ресурсы являются отличным началом для изучения СУБД, но зачастую времени на это у членов команды недостаточно.
Наши DBA ежедневно обслуживают десятки баз данных и в курсе самых последних новинок и трендов развития PostgreSQL, а также популярных ошибок в работе с ней.
Стоимость консультационного семинара рассчитывается индивидуально.
Для получения коммерческого предложения и разработки индивидуальной программы семинара обращайтесь.

Среди популярных тем для семинаров:

  • Основы PostgreSQL
  • Средства диагностики
  • Оптимизация производительности
  • Администрирование PostgreSQL
  • Масштабирование и отказоустойчивость
  • Продвинутый SQL и не только
Программа семинаров согласовывается индивидуально, чтобы учесть актуальные потребности конкретного бизнеса, и преимущественно построена на практической работе, чтобы ваша команда могла применить изученный материал сразу.
Семинары проводятся на территории заказчика либо в форме вебинара для групп 10-20 человек.
← Аудит Контакты Поддержка 24/7 →
Аудит
Аудит от Data Egret представляет собой единовременное погружение наших специалистов в вашу базу данных, с целью проведения анализа, выявления неполадок или “узких” мест и предоставления отчета с рекомендациями по оптимизации работы БД.

В процессе Аудита проводится:

  • анализ настроек (pgbouncer) PostgreSQL;
  • поиск медленных SQL запросов;
  • анализ схемы данных;
  • анализ настроек ОС и оборудования;
  • аудит производительности;
  • анализ процесса резервного копирования.

Письменный отчет содержит  рекомендации:
  • по изменению настроек на более эффективные;
  • по оптимизации обнаруженных медленных запросов;
  • по оптимизации процесса резервного копирования;
  • общие рекомендации по архитектуре, связанные с оптимизацией производительности.
Стоимость пакета Аудит: 130 000р./инстанс* **.

* Инстансом является один мастер и реплика под нагрузкой.

** Цена без учета НДС и может варьировать в зависимости от индивидуальных требований клиента. При заключении договора на Поддержку Аудит проводится по сниженной цене. Настоящее предложение не является офертой.

Указанные условия, включая стоимость оказываемых услуг в рублях РФ, не являются офертой, и могут быть изменены в зависимости от согласованных в дальнейшем существенных условий договора и предпочтительной для клиента валюты платежа.

← Консультирование Контакты Обучение →
Консультирование PostgreSQL
Администрирование баз данных (БД) часто ложится на плечи системных администраторов и разработчиков. При этом работа с БД требует как специфических знаний, так и значительного опыта, особенно, если речь идет о работе с высокой нагрузкой.

Работая с нами, вы получаете возможность использовать знания и опыт высококвалифицированных специалистов по PostgreSQL для оптимизации работы вашей БД, при этом не меняя состав вашей команды.

Пакет индивидуальных консультаций не имеет “срока годности”, и вы можете обратиться к нам для решения как горящих, так и плановых задач, получения помощи в масштабировании БД и архитектурных решениях*. 

Что мы делаем в процессе консультирования:
  • настраиваем PostgreSQL;
  • сопровождаем в процессе миграции на PostgreSQL;
  • улучшаем производительность БД;
  • уменьшаем время отклика сервисов;
  • настраиваем процесс резервного копирования;
  • решаем архитектурные задачи;
  • налаживаем процесс мониторинга.
Минимальный пакет 10 часов: 120 000 р.
Дополнительный час — 16 000 р./час.

Услуга не подразумевает SLA. Для систем с жестким временным режимом мы рекомендуем наши пакеты Поддержки.
Сервера с устаревшими версиями PostgreSQL (9.3 и ниже), а также сервера под управлением ОС Windows тарифицируются по ставке на 50% выше.

Указанные условия, включая стоимость оказываемых услуг в рублях РФ, не являются офертой, и могут быть изменены в зависимости от согласованных в дальнейшем существенных условий договора и предпочтительной для клиента валюты платежа.

* С 9:00 до 18:00 по Мск.

← Поддержка 24/7 Контакты Аудит →
Поддержка 24/7

Поддержка от Data Egret — это сочетание регулярных проверок (Health Checks) базы данных, а также техническое сопровождение:

  • проведение апгрейдов,
  • помощь в настройке мониторинга,
  • регулярное резервное копирование,
  • работа со сложной нагрузкой,
  • предоставление рекомендаций по улучшению архитектуры и производительности базы данных,
  • поиск и устранение причин падения производительности базы
  • оптимизация работы БД при растущем трафике.

Что такое регулярные проверки (Health Checks):
  • проверки производительности запросов,
  • обнаружение аномалий в мониторинге и логах,
  • проверки настроек системы,
  • проверки работы системы бэкапирования.

Цель проверок — своевременное выявление неполадок и оптимизация работы системы.

Базовый пакет*

(максимум 1 инстанс)

Стандартный
пакет
Премиальный
пакет
09:00-18:00 МСК
Чат
09:00-18:00 МСК
Чат
09:00-18:00 МСК
Чат
— 24/7/365
Аварийный телефон
24/7/365
Аварийный телефон
Реакция на аварии — 1 час
09:00-18:00 МСК
Круглосуточная реакция
на аварии — 1 час
Круглосуточная реакция
на аварии — 15 мин
— Регулярные проверки БД Регулярные проверки БД
до 3-х часов работы DBA в месяц
+ бонус на первый месяц*
до 10 часов работы DBA в месяц до 20 часов работы DBA в месяц
12 000р. за доп.час работы DBA 12 000р. за доп.час работы DBA 10 000р. за доп.час работы DBA
30 000 р. в месяц# ** От 80 000 р. в месяц / инстанс# ** От 160 000 р. в месяц / инстанс# **
* Базовый пакет может включать максимум один инстанс. В пакет первого месяца дополнительно бесплатно включены ознакомительные проверки БД. Регулярные проверки БД (HealthChecks) проводятся по инициативе заказчика за счет включенных 3/месяц часов работы DBA.
# Инстансом в пакете Стандарт и Базовый является один мастер и одна реплика под нагрузкой, в пакете Премиум — один мастер и до двух реплик под нагрузкой.
** Цена без учета НДС и может варьировать в зависимости от индивидуальных требований клиента.
Сервера с устаревшими версиями PostgreSQL (9.3 и ниже), а также сервера под управлением ОС Windows тарифицируются по ставке на 50% выше.
В таблице ниже представлен ориентировочный расчет стоимости каждого пакета Поддержки в зависимости от количества инстансов. Возможен индивидуальный расчет для сложных проектов и особых требований — обращайтесь.
Кол-во инстансов#
PostgreSQL
Базовый
пакет
Стандартный
пакет
Премиальный
пакет
1 30 000 от 80 000 от 160 000
2 — от 120 000 от 240 000
3 — от 160 000 от 320 000
>4 — По запросу По запросу
#Инстансом в пакете Стандарт и Базовый является один мастер и одна реплика под нагрузкой, в пакете Премиум — один мастер и до двух реплик под нагрузкой.
Настоящее предложение не является публичной офертой.
Указанные условия, включая стоимость оказываемых услуг в рублях РФ, могут быть изменены в зависимости от согласованных в дальнейшем существенных условий договора и предпочтительной для клиента валюты платежа.
← Обучение Контакты Консультирование →
Проверить свою версию PostgreSQL
Запустите наш SQL запрос, скопировав код ниже.
Вывод даст вам понять, какой версией вы пользуетесь и надо ли вам перейти на более новую.
Скопировать код
            select case when setting::bigint < 90400 
              then 'Вы используете старую версию PostgreSQL, которая более не поддерживается сообществом.'||chr(10)||
                   'Рекомендуем вам перейти на последнюю актуальную версию как можно скорее.'
            when setting::bigint < 90500
              then 'Вы используете старую версию PostgreSQL, которая пока что поддерживается сообществом.'||chr(10)||
                   'Рекомендуем вам перейти на последнюю актуальную версию.'
            when setting::bigint < 90600
              then 'Вы используете достаточно современную версию PostgreSQL, которая активно поддерживается сообществом.'||chr(10)||
                   'У вас все неплохо, но можно обновиться и на последнюю актуальную версию при возможности.'
            when setting::bigint < 120000
              then 'Вы пользуетесь одной из самых последних версий PostgreSQL.'||chr(10)||
                   'У вас все отлично.'
            else 'Вы используете версию которая находится в разработке,'||chr(10)||
                 'если это production, то рекомендуем вам перейти на стабильную версию PostgreSQL.'
       end as "Проверка мажорной версии PostgreSQL"
     , case when setting::bigint between 110003 and 119999 or 
                 setting::bigint between 100008 and 109999 or 
                 setting::bigint between 90613 and 90699 or 
                 setting::bigint between 90517 and 90599 or 
                 setting::bigint between 90422 and 90499
              then 'У вас стоит один из последних патчей PostgreSQL для вашей версии.'||chr(10)||
                   'Похоже вы следите за обновлениями PostgreSQL. Это хороший факт.'
            else 'Похоже вы не обновляли PostgreSQL, после установки/последнего мажорного обновления, совсем.'||chr (10)||
                 'Это плохо, рекомендуем вам обновиться до последней актуальной версии PostgreSQL.'
       end as "Проверка минорной версии PostgreSQL"
     , 'Актуальные версии на данный момент следующие, в порядке убывания актуальности:'||chr (10)||
       '11.4, 10.9, 9.6.14, 9.5.18, 9.4.23' as "Список актуальных версий"
  from pg_settings
 where name = 'server_version_num';
Переход на новые версии PostgeSQL зачастую требует опыта, который приходит при постоянной работе с различными версиями PostgreSQL, поэтому это то, что обычно откладывается в долгий ящик.
При этом, если вы продолжаете использовать систему, которая больше не поддерживается сообществом, это может привести к неприятным последствиям в случае поломки.
У наших специалистов огромный опыт в переводе баз на более актуальные версии PostgreSQL, и они с удовольствием вам помогут осуществить безупречный переход к новой версии.
Обращайтесь!

 

Проверить свою версию PostgreSQL
Переход на новые версии PostgreSQL зачастую откладывается на потом, ведь система уже работает, к чему что-либо менять?
На самом деле, актуальные версии PostgreSQL содержат исправления ошибок и улучшения, позитивно влияющие на производительность базы. Новые версии также включают в себя исправления ошибок безопасности, что немаловажно для здоровой работы любой базы данных.
Поддерживать актуальные версии необходимо, особенно для продукционных баз.
Проверить свою версию PostgreSQL
Воркеры автовакуума работают не переставая
Проверить оптимальность работы автовакуума
Если вы регулярно видите процессы автовакуума — в одной и той же таблице (часто), или же работающие слишком долго — вам необходимо принимать меры и конфигурировать базу.
Запустите наш SQL запрос, скопировав код ниже.
Скопировать код
SELECT (clock_timestamp() - xact_start) AS ts_age,
                            state, pid, query FROM pg_stat_activity
                            WHERE query ~ 'autovacuum' AND NOT pid=pg_backend_pid();
Скрипт покажет все активные в данный момент процессы автовакуумa и время их работы.
Мы часто сталкиваемся с похожими проблемами в базах данных новых клиентов — и это легко
устранить, обеспечив бесперебойную работу базы данных. Если вам нужна помощь в оптимизации
работы автовакуума, мы будем рады помочь.
Обращайтесь!
Воркеры автовакуума работают не переставая
Вакуумирование — важная процедура поддержания хорошей работоспособности вашей базы.
Если вы видите, что автовакуум процессы всё время работают, это значит, что они не успевают за количеством изменений в системе.
А это, в свою очередь, сигнал того, что надо срочно принимать меры, иначе есть большой риск “распухания” таблиц и индексов — ситуация, когда физический размер объектов в базе очень большой, а при этом полезной информации там в разы меньше.
Проверить оптимальность работы автовакуума
Время ответа базы периодически падает
Запустите следующий SQL запрос:
Скопировать код
SELECT now()-pg_postmaster_start_time() "Uptime",
now()-stats_reset "Minutes since stats reset",
round(100.0*checkpoints_req/checkpoints,1) "Forced
checkpoint ratio (%)",
round(min_since_reset/checkpoints,2) "Minutes between
checkpoints",
round(checkpoint_write_time::numeric/(checkpoints*1000),2) "Average
write time per checkpoint (s)",
round(checkpoint_sync_time::numeric/(checkpoints*1000),2) "Average
sync time per checkpoint (s)",
round(total_buffers/pages_per_mb,1) "Total MB written",
round(buffers_checkpoint/(pages_per_mb*checkpoints),2) "MB per
checkpoint",
round(buffers_checkpoint/(pages_per_mb*min_since_reset*60),2)
"Checkpoint MBps"
FROM (
SELECT checkpoints_req,
checkpoints_timed + checkpoints_req checkpoints,
checkpoint_write_time,
checkpoint_sync_time,
buffers_checkpoint,
buffers_checkpoint + buffers_clean + buffers_backend total_buffers,
stats_reset,
round(extract('epoch' from now() - stats_reset)/60)::numeric
min_since_reset,
(1024.0 * 1024 / (current_setting('block_size')::numeric))pages_per_mb
FROM pg_stat_bgwriter
) bg

Запрос покажет статистику по контрольным точкам с момента, когда она в последний раз обнулялась.
Важными показателями будут минуты между контрольными точками и объем записываемой информации.

Большое количество данных за короткое время — это серьезная нагрузка на систему ввода-вывода. Если это ваш случай, то ситуацию нужно однозначно менять!
Обращайтесь!
Время ответа базы периодически падает
При неправильно настроенных контрольных точках база будет генерировать избыточную дисковую нагрузку. Это будет происходить с высокой частотой, что будет замедлять общее время отклика системы и базы данных.
Для того, чтобы понять правильность настройки, надо обратить внимание на следующие отклонения в поведении базы данных:
  • в мониторинге приложения или базы будут видны пики во времени ответа с хорошо прослеживаемой периодичностью;
  • в моменты «пиков» в логе базы будет отслеживаться большое количество медленных запросов (в случае, если логирование таких запросов настроено).
Следуйте нашим инструкциям, чтобы проверить настройки контрольных точек.
Запросы планируются медленно
Найти проблематичные запросы
Для работы над медленными запросами необходимо их прежде всего идентифицировать. Существует как минимум три варианта, как это сделать:
  • найти проблемные запросы в мониторинге
  • просмотреть лог базы на наличие долгих запросов (включается опцией log_min_duration_statement)
  • проверить view pg_stat_statements

После идентификации запроса необходимо посмотреть его план. Скопируйте код ниже, который добавит `EXPLAIN (analyze)` в начало вашего запроса, потом запустите запрос.

Будьте осторожны с запросами, которые меняют данные т.к. они будут исполнены!

Скопировать код
explain (analyze) select 10/2;
                            /* Вместо select 10/2 вставьте пожалуйста ваш запрос который работает медлено */

При выводе вы получите два параметра — время планирования и время исполнения запроса, например:

Planning time: 3667.361 ms

Execution time: 1.652 ms

Если время планирования сравнимо или же превышает время выполнения — проблематичный запрос нужно оптимизировать.
Если вам нужна помощь, обращайтесь, мы проведем ряд дополнительных проверок, идентифицируем все сессии, требующие внимания, и оптимизируем скорость запросов в вашей базе данных.
Обращайтесь!
Запросы планируются медленно
Одной из причин плохого времени ответа базы может быть длительное планирование запросов. В некоторых случаях время планирования может в десятки раз превышать время исполнения запроса.
Необходимо исследовать причину, по которой планировщик долго работает, и устранить её.
Следуйте нашим инструкциям, чтобы идентифицировать проблематичные запросы.
Найти проблематичные запросы
Политика конфиденциальности
Настоящая Политика конфиденциальности (далее — Политика) действует в отношении всей информации, которую ООО «ПГ Консалтинг», действующий под брендом Data Egret (далее – Оператор), может получить о Пользователе во время использования Веб-сайтов Оператора dataegret.ru и dataegret.com.
Использование Веб-сайтов означает безоговорочное согласие Пользователя с настоящей Политикой и указанными в ней условиями обработки собираемых данных. В случае несогласия с условиями настоящей Политики Пользователь должен немедленно прекратить использование Веб-сайтов.
Информация Пользователя

В рамках настоящей Политики под информацией Пользователя понимаются:

  1. информация, которую Пользователь предоставляет о себе самостоятельно в процессе использования Веб-сайтов, в том числе персональные данные;
  2. данные, которые собираются автоматически в процессе использования Веб-сайтов, в том числе IP-адрес, информация из cookies, информация о браузере Пользователя, время доступа, адрес запрашиваемой страницы;
  3. иная информация о Пользователе.
Оператор не проверяет достоверность предоставленной Пользователем информации и не осуществляет контроль за его дееспособностью. Оператор исходит из того, что Пользователь предоставляет достоверную и достаточную информацию, необходимую в процессе использования Веб-сайтов.
Цели сбора и обработки информации Пользователей
Оператор собирает и хранит только ту информацию, которая необходима для исполнения соглашений и договоров с Пользователем.

Информацию Пользователя Оператор может использовать в следующих целях:

  1. идентификация стороны в рамках соглашений и договоров с Оператором;
  2. предоставление Пользователю персонализированных услуг;
  3. связь с Пользователем, в том числе направление уведомлений, запросов и информации, а также обработка запросов и заявок от Пользователя;
  4. улучшение качества Веб-сайтов, удобства их использования, разработка новых сервисов и услуг;
  5. проведение статистических и иных исследований на основе обезличенных данных.
Условия обработки информации Пользователя и ее передачи третьим лицам
Оператор хранит информацию Пользователей в соответствии с внутренними регламентами.
В отношении информации Пользователя сохраняется ее конфиденциальность, кроме случаев, предусмотренных действующим законодательством, или случаев, когда Пользователь сделал указанную информацию общедоступной.

Оператор вправе передать информацию Пользователя третьим лицам в следующих случаях:

  1. Пользователь выразил свое согласие на такие действия;
  2. Передача необходима в рамках оказания Пользователю определенных услуг;
  3. Передача предусмотрена законодательством Российской Федерации.

При обработке информации, являющейся персональными данными Пользователей, Оператор руководствуется Федеральным законом № 152-ФЗ «О персональных данных».

Изменение Пользователем информации
Пользователь может в любой момент изменить (обновить, дополнить) предоставленную им информацию или ее часть.
Пользователь вправе запросить удаление предоставленной им информации посредством электронного письма, направленного на контактный адрес электронной почты Оператора.
Меры безопасности
Оператор принимает необходимые и достаточные организационные и технические меры для защиты информации Пользователя от неправомерного или случайного доступа, уничтожения, изменения, блокирования, копирования, распространения, а также от иных неправомерных действий с ней третьих лиц.
Заключительные положения
Оператор имеет право вносить изменения в настоящую Политику конфиденциальности.
Новая редакция Политики вступает в силу с момента ее размещения, если иное не предусмотрено новой редакцией Политики. Действующая редакция Политики конфиденциальности всегда находится на Веб-сайтах по адресу: https://dataegret.ru/#_privacyPolicy.
К настоящей Политике и отношениям между Пользователем и Оператором, возникающим в связи с применением Политики, подлежит применению право Российской Федерации.
Используя dataegret.ru, вы соглашаетесь с политикой конфиденциальности и правилами обработки персональных данных узнать больше Принять!
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary Always Enabled

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

Non-necessary

Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.