Autovacuum slides from PgCon 2018 Ottawa
Slides from our talks at PgCon 2018. This week was busy for me and my colleague Ilya Kosmodemiansky as we made our way to Ottawa, Canada to…
Slides from our talks at PgCon 2018. This week was busy for me and my colleague Ilya Kosmodemiansky as we made our way to Ottawa, Canada to…
Troubleshooting Streaming Replication from PGConf RU 2017 Moscow This week, I have a pleasure speaking at PGConf RU conference in Moscow. It’s very interesting event and I…
My slides about PostgreSQL Streaming Replication from PgConf 2016 Russia. Streaming replication in practice from Алексей Лесовский
Slides from Highload++ 2015 (Moscow, Russia). PostgreSQL is a huge system which consists of many subsystems, whose work determines the performance of PostgreSQL. During lifetime, postgres ensures…
PostgreSQL Meetup on RITFest 2015 at Moscow, Russia. Today was the first day of the festival RIT. One of the events of the festival was a PostgreSQL…
Slides from Secon’2015 — Software Developers Conference. Penza, The database is an essential element of any project. The database must be stable and provide good performance. If you…
Популярные темы семинаров:
В процессе Аудита проводится:
Настоящее предложение не является офертой.
Указанные условия, включая стоимость оказываемых услуг в рублях РФ, не являются офертой, и могут быть изменены в зависимости от согласованных в дальнейшем существенных условий договора и предпочтительной для клиента валюты платежа.
Работая с нами, вы получаете возможность использовать знания и опыт высококвалифицированных специалистов по PostgreSQL для оптимизации работы вашей БД, при этом не меняя состав вашей команды.
Приобретая пакет консалтинговых часов, вы можете обратиться к нам для решения как горящих, так и плановых задач, получения помощи в масштабировании БД и консультаций по архитектуре. Заявки на консультации принимаются с 09:00 по 18:00 МСК.
Указанные условия, включая стоимость оказываемых услуг в рублях РФ, не являются офертой, и могут быть изменены в зависимости от согласованных в дальнейшем существенных условий договора и предпочтительной для клиента валюты платежа.
Поддержка от Data Egret — это сочетание регулярных проверок (Health Checks), круглосуточная доступность команды DBA для ответа на аварийные обращения и решение рутинных задач по оптимизации работы баз данных, включая:
Базовый | Премиум | Enterprise |
До 10 серверов | До 40 серверов | До 100 серверов |
Чат, аварийный телефон | Чат, аварийный телефон | Чат, аварийный телефон |
до 10 часов работы DBA/месяц* | до 25 часов работы DBA/месяц* | до 60 часов работы DBA/месяц* |
SLA
проблема — до 1 ч., |
SLA
проблема — до 1 ч., |
SLA
проблема — до 1 ч., |
24/7 SLA на аварии — 1 ч. | 24/7 SLA на аварии — 1 ч. | 24/7 SLA на аварии — 30 мин |
Автоматические Health Check | Автоматические Health Check с рекомендациями от DBA | Индивидуальная проверка ваших БД нашими DBA |
Цена может варьировать в зависимости от индивидуальных требований клиента и обсуждается индивидуально. Настоящее предложение не является публичной офертой.*Возможно платное увеличение лимита часов на базовые работы.**При выработке лимита часов, включенных в пакет, дополнительные часы оплачиваются по дополнительному тарифу. По предварительной договоренности возможно увеличение лимита часов, включенных в пакет, по сниженному тарифу. Указанные условия, включая стоимость оказываемых услуг в рублях РФ, могут быть изменены в зависимости от согласованных в дальнейшем существенных условий договора и предпочтительной для клиента валюты платежа. Минимальная длительность контракта — 6 месяцев.
|
select case when setting::bigint < 90600 then 'Вы используете старую версию PostgreSQL, которая более не поддерживается сообществом.'||chr(10)|| 'Рекомендуем вам перейти на последнюю актуальную версию как можно скорее.' when setting::bigint < 100000 then 'Вы используете старую версию PostgreSQL, которая пока что поддерживается сообществом.'||chr(10)|| 'Рекомендуем вам перейти на последнюю актуальную версию.' when setting::bigint < 110000 then 'Вы используете достаточно современную версию PostgreSQL, которая активно поддерживается сообществом.'||chr(10)|| 'У вас все неплохо, но можно обновиться и на последнюю актуальную версию при возможности.' when setting::bigint < 140000 then 'Вы пользуетесь одной из самых последних версий PostgreSQL.'||chr(10)|| 'У вас все отлично.' else 'Вы используете версию которая находится в разработке,'||chr(10)|| 'если это production, то рекомендуем вам перейти на стабильную версию PostgreSQL.' end as "Проверка мажорной версии PostgreSQL" , case when setting::bigint between 130002 and 139999 or setting::bigint between 120006 and 129999 or setting::bigint between 110010 and 119999 or setting::bigint between 100015 and 109999 or setting::bigint between 90620 and 90699 then 'У вас стоит один из последних патчей PostgreSQL для вашей версии.'||chr(10)|| 'Похоже вы следите за обновлениями PostgreSQL. Это хороший факт.' else 'Похоже вы не обновляли PostgreSQL, после установки/последнего мажорного обновления, совсем.'||chr (10)|| 'Это плохо, рекомендуем вам обновиться до последней актуальной версии PostgreSQL.' end as "Проверка минорной версии PostgreSQL" , 'Актуальные версии на данный момент следующие, в порядке убывания актуальности:'||chr (10)|| '13.3, 12.7, 11.12, 10.17, 9.6.22' as "Список актуальных версий" from pg_settings where name = 'server_version_num';
SELECT (clock_timestamp() - xact_start) AS ts_age, state, pid, query FROM pg_stat_activity WHERE query ~ 'autovacuum' AND NOT pid=pg_backend_pid();
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
Запрос покажет статистику по контрольным точкам с момента, когда она в последний раз обнулялась.
Важными показателями будут минуты между контрольными точками и объем записываемой информации.
После идентификации запроса необходимо посмотреть его план. Скопируйте код ниже, который добавит `EXPLAIN (analyze)` в начало вашего запроса, потом запустите запрос.
Будьте осторожны с запросами, которые меняют данные т.к. они будут исполнены!
explain (analyze) select 10/2; /* Вместо select 10/2 вставьте пожалуйста ваш запрос который работает медленно */
При выводе вы получите два параметра — время планирования и время исполнения запроса, например:
Planning time: 3667.361 ms
Execution time: 1.652 ms
В рамках настоящей Политики под информацией Пользователя понимаются:
Информацию Пользователя Оператор может использовать в следующих целях:
Оператор вправе передать информацию Пользователя третьим лицам в следующих случаях:
При обработке информации, являющейся персональными данными Пользователей, Оператор руководствуется Федеральным законом № 152-ФЗ «О персональных данных».