Узкие места PostgreSQL
Хорошо, когда база работает предсказуемо. Если сервер не справляется с нагрузкой, то только знай добавляй процессорные ядра, терабайты оперативной памяти и миллионы IOPS'ов – всё станет хорошо. Гораздо неприятнее, когда у сервера куча свободных ресурсов, но база данных всё равно тормозит. И особенно обидно, когда при нагрузочном тестировании всё работало как часы, а при реальной нагрузке такого же объёма – встаёт колом.
В данном докладе я разберу "узкие места" постгреса, которые нам приходилось встречать в реальной жизни, и которые приводили к печальному поведению, как описано выше. Расскажу о том, что можно сделать на пользовательском уровне, что эти "узкие места" обойти, и о том, что планируют сделать разработчики, чтобы их вообще убрать. А также поделюсь некоторыми рецептами нагрузочного тестирования, которые помогут избежать неожиданностей в продакшене.
Слайды
Видео
Другие доклады
-
Иван Панченко Postgres Professional рзаместитель генерального директора
NoSQL/PL: Программирование на не SQL-образных процедурных языках
Мастер-класс по Server-Side разработке на процедурных языках PL/Perl ,PL/Python, PL/v8 в PostgreSQL и PostgresPro. Вы узнаете не только, для чего они нужны, но и как ими правильно пользоваться, и каких результатов можно достичь благодаря им.
-
Александр Коротков Postgres Professional Руководитель разработки
Что PostgreSQL 12 нам готовит?
"Заморозка разработки" (feature freeze) PostgreSQL 12 запланирована на апрель 2019, который ещё не настал. Но контуры будущего релиза уже проступают. В данном доклае я расскажу о том, что уже попало в PostgreSQL 12, а также о том что с большой вероятностью может туда попасть. С особым пристрастием расскажу про SQL/JSON, Merge, pluggable table access methods и zheap.
-
Павел Молявин 2ГИС Инженер Инфраструктуры
Готовим PostgreSQL в эпоху DevOps. Опыт 2ГИС
После перехода к микросервисной архитектуре для PostgreSQL наступили «темные времена». Каждая из десяти команд действовала самостоятельно — ставила свою базу данных, выбирала версию, писала деплои. Пришло время создать общий инструмент.
Мы собрали кластер на основе PostgreSQL, repmgr, PgBouncer, Barman. Несмотря на то, что система получилась достаточно сложной для неподготовленного специалиста, нам удалось создать повторяемый деплой, который позволяет быстро разворачивать рабочую систему. А также мы смогли консолидировать все базы в нескольких кластерах и снять с команд обязанности по администрированию.
Failover работает, мы проверяли :-)
-
Александр Кукушкин Zalando SE Database Engineer
Типичные ошибки при построении высокодоступных кластеров и как их избежать
Вы только что установили PostgreSQL и запустили ваш первый кластер, создали несколько таблиц, загрузили данные, и даже немного подкрутили конфигурацию Постгреса для улучшения производительности. Теперь вы думаете о том, как сделать ваш кластер высокодоступным. К сожалению, Постгрес не умеет сам выполнять автоматическое переключение при недоступности мастера, но, к счастью для нас, этого можно достичь с помощью сторонних утилит. Задача ясна, и вы начинаете изучать преимущества и недостатки всех утилит, чтобы выбрать лучшую. И... вы уже на неправильном пути, потому что в первую очередь вы должны определиться со значениями SLA, RTO и RPO. В этом докладе я планирую рассказать о ряде ошибок, которые допускают администраторы баз данных при настройке и эксплуатации высокодоступного кластера Постгреса с автоматическим переключением.