SlideShare a Scribd company logo
PostgreSQL глазами
инженера по эксплуатации
Смерть эксплуататорам и
программистам!
Александр Чистяков,
главный инженер Git in Sky,
2015
Мы
§ A small consulting company
§ Web operations engineers
§ Performance engineers
§ Elephant lovers
§ Знаем английский :)
Как пасти слонов. 2015
Вы
§ Инженеры по эксплуатации?
§ Веб(?)-разработчики?
§ Любите слонов
§ Может быть, пони вы тоже любите?
Как пасти слонов. 2015
Повестка дня
§ Что такое “хорошо” и что такое “плохо”
§ Случаи из жизни
§ Раздача слонов и материализация views
§ Границы применимости, законы физики
и другое занудство
§ PostgreSQL vs. MySQL, PostgreSQL vs. MongoDB, ...
Как пасти слонов. 2015
Что мы эксплуатируем
§ В основном — PostgreSQL 9.3.X
§ В недавнем прошлом — 9.1.X и 9.2.X
§ Уже начали использовать 9.4
Как пасти слонов. 2015
Составляющие процесса эксплуатации
§ Sizing & capacity planning
§ Установка и настройка
§ Репликация
§ Бэкап
§ Мониторинг
§ Соблюдение законов физики
§ Обновление схемы БД и версий
Как пасти слонов. 2015
Sizing & capacity planning
§ PostgreSQL — современная база данных
§ Очень производительная!
§ Поэтому sizing и capacity planning мы делать
не будем
§ И обсуждать тоже не будем
§ Зачем время тратить?
Как пасти слонов. 2015
Установка и настройка
§ Как правило — ничего удивительного
§ Однажды мы запустили PostgreSQL в Docker
§ Было не очень удобно, ....
§ Однажды мы запустили PostgreSQL в Amazon
§ Но про capacity planning мы решили молчать
Как пасти слонов. 2015
Репликация
§ Бывает:
§ «Встроенная» асинхронная
§ «Встроенная» синхронная
§ «Внешняя» триггерная
§ Не бывает:
§ Мастер-мастер (хотя именно ее все и просят)
§ Пока не пробовали: logical decoding
Как пасти слонов. 2015
Встроенная репликация
§ Работает вот уже примерно два года
§ Настраивается в < 10 простых шагов
§ Ничего удивительного
§ Лучше настраивать сразу, пока база
еще маленькая
§ Если база большая — возьмите WALs с бэкапа
Как пасти слонов. 2015
Внешняя триггерная репликация
§ Не нужна*
Как пасти слонов. 2015
Бэкап
§ Многих славный путь:
§ pgdump =>
§ barman =>
§ отрицание, гнев, торг, депрессия, смирение
§ Космодемьянский на мой доклад не пришел,
поэтому ZFS!
Как пасти слонов. 2015
barman
§ Как часто делать базовый бэкап — time/space trade-off
§ Ориентируйтесь на размер WALs и скорость восстановления
§ Немного нарушает принцип наименьшего удивления -
хранит WALs в сжатом виде без расширения .gz
§ Даже будучи установлен локально, хочет забирать WAL'ы по
ssh
Как пасти слонов. 2015
Обновление схемы БД
§ ALTER TABLE ADD COLUMN .... DEFAULT
Как пасти слонов. 2015
Обновление версий
§ Задача, отсутствующая в мире MySQL
§ В мире PostgreSQL до версии 9.4 — триггерная репликация
§ Bucardo
Как пасти слонов. 2015
Bucardo
§ Устанавливается почти не вызывая удивления
§ В каком каталоге .pgpass?
§ Работает почти не вызывая удивления
§ https://gist.github.com/alexclear/a11deed1be3b1d045187
§ Если в бизнес-логике используется TRUNCATE — беда
Как пасти слонов. 2015
Bucardo
§ 9.3 — 9.4, 2.0 Tb — 1.7 Tb
Как пасти слонов. 2015
Мониторинг
§ В PostgreSQL масса всяких параметров, ни один из которых
мне не интересен
Как пасти слонов. 2015
Мониторинг
§ Индексы должны помещаться в память!*
Как пасти слонов. 2015
Мониторинг
§ pg_stat_statements
§ POWA
§ Надстройка над pg_stat_statements, которая умеет хранить
историю
§ shared_preload_libraries = 'powa,pg_stat_statements'
§ При апгрейде базы не забыть пересобрать
§ Не работает*
Как пасти слонов. 2015
Sizing & capacity planning
§ Для богатых:
§ ISBN-10: 1849516960 (вся первая часть книги)
§ Для бедных:
§ а) взять железо, какое было в магазине
§ б) задать целевое значение метрики
§ в) протестировать под нагрузкой
§ г) плакать, проклинать себя, жизнь и индустрию
Как пасти слонов. 2015
А что делать, если слон устал?
§ У одной моей подруги с ее парнем
§ Исходно было нужно 3K RPS на вставку
§ Требования возросли до 30K RPS за две недели
до старта
§ К счастью, есть немного времени подумать
§ и поработать
§ Здесь есть кто-то с 30K вставок в секунду в PostgreSQL?
Как пасти слонов. 2015
Слайд памяти Курта Кобейна
§ Дорогая, я затюнил bgwriter
Как пасти слонов. 2015
Объективация женщины это плохо!
Как пасти слонов. 2015
Слон слону — слон!
§ Что такое “база данных” и зачем она нужна?
§ (К слову, зачем нужна MongoDB, я так и не понял)
§ Size does matter — smaller is better!
§ Индексы в PostgreSQL, все остальное —
где-нибудь еще
Как пасти слонов. 2015
Выводы
§ Слон — отличное домашнее животное
§ Слоны требуют ухода
§ Не обижайте слонов!
Как пасти слонов. 2015
С вами был Александр Чистяков,
главный инженер Git in Sky
alex@gitinsky.com
http://gitinsky.com
http://meetup.com/DevOps-40
Пожалуйста, ваши вопросы.
Спасибо за внимание!

More Related Content

PDF
My talk on PgDay Russia 2014
PPTX
Why we did not choose Hadoop
PDF
Performance engineering stories from #fdminicon Saransk
PDF
My talk on Graphite stack on 58it.ru
PDF
Optimization of a big PostgreSQL database
PDF
Salt and Ansible - Python-based CM systems
PDF
Repeatability on DevOps-40 meetup Apr 2014
PDF
My talk on LeoFS, Highload++ 2014
My talk on PgDay Russia 2014
Why we did not choose Hadoop
Performance engineering stories from #fdminicon Saransk
My talk on Graphite stack on 58it.ru
Optimization of a big PostgreSQL database
Salt and Ansible - Python-based CM systems
Repeatability on DevOps-40 meetup Apr 2014
My talk on LeoFS, Highload++ 2014

What's hot (20)

PDF
Benchmarking PostgreSQL in Linux and FreeBSD
PPTX
Организация надежного резервного копирования веб-проекта. Практика и подводны...
PPTX
Спасение 6 миллионов файлов в условиях полного Хецнера
PPTX
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
PDF
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
PPTX
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
PDF
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PDF
Профилирование кода на C/C++ в *nix системах
PDF
Near-realtime аналитика событий в высоконагруженном проекте
PDF
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
PDF
Всему своё время / Роман Ивлиев (Банки.ру)
PDF
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...
PDF
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
PDF
RTB DSP на языке Go: укрощение buzzwords
PPTX
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
PDF
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
PDF
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...
PPTX
Диагностика postgresql для системного администратора
PDF
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
PDF
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Benchmarking PostgreSQL in Linux and FreeBSD
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Спасение 6 миллионов файлов в условиях полного Хецнера
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Профилирование кода на C/C++ в *nix системах
Near-realtime аналитика событий в высоконагруженном проекте
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
Всему своё время / Роман Ивлиев (Банки.ру)
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
RTB DSP на языке Go: укрощение buzzwords
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...
Диагностика postgresql для системного администратора
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Ad

Viewers also liked (20)

PDF
My talk on Docker from Moscow Django Meetup #25
PDF
On Docker
PDF
Using Ansible
ODP
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14
PDF
My talk on Hadoop stack operations engineering at OSPCon
PPTX
Управление рисками при эксплуатации ИТ-инфраструктуры
PDF
My talk on Piter Py 2016
PDF
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
PDF
My talk from PgConf.Russia 2016
PDF
My talk on Salt and Ansible from DevConf 2014
PDF
Ansible in the enterprise
ODP
My talk on Docker, Youcon 2015
PDF
My talk on monitoring systems at RootConf 2016
PDF
NoSQL — неспроста ли это "ЖЖЖ"?
PDF
My talk at Linux Piter 2015
PDF
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...
PDF
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
PDF
Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...
PDF
Масштабирование баз данных
DOCX
План на февраль 2016
My talk on Docker from Moscow Django Meetup #25
On Docker
Using Ansible
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14
My talk on Hadoop stack operations engineering at OSPCon
Управление рисками при эксплуатации ИТ-инфраструктуры
My talk on Piter Py 2016
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
My talk from PgConf.Russia 2016
My talk on Salt and Ansible from DevConf 2014
Ansible in the enterprise
My talk on Docker, Youcon 2015
My talk on monitoring systems at RootConf 2016
NoSQL — неспроста ли это "ЖЖЖ"?
My talk at Linux Piter 2015
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного we...
Масштабирование баз данных
План на февраль 2016
Ad

Similar to My talk on administering PostgreSQL (19)

PDF
Where is the space, Postgres?
PDF
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
PDF
Postgresql v509
PDF
Павел Лузанов, Postgres Professional. «PostgreSQL для пользователей Oracle»
PDF
Владимир Бородин - PostgreSQL
PPTX
PostgreSQL. Стильно. Модно. Молодёжно
ODP
PDF
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
PDF
Олег Бартунов и Иван Панченко
PDF
PostgreSQL
PDF
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
PDF
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PDF
Hacking PostgreSQL. Обзор архитектуры.
PDF
Расширяемость PostgreSQL для хакеров и архитекторов / Олег Бартунов, Александ...
PDF
PostgreSQL в высоконагруженных проектах
PDF
PostgreSQL on sas/ssd/nvme/nvdimm
PPT
SAMag2007 Conference: PostgreSQL 8.3 presentation
PDF
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
PPTX
В ногу со временем, или как делать upgrade PostgreSQL / Андрей Сальников (Dat...
Where is the space, Postgres?
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
Postgresql v509
Павел Лузанов, Postgres Professional. «PostgreSQL для пользователей Oracle»
Владимир Бородин - PostgreSQL
PostgreSQL. Стильно. Модно. Молодёжно
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
Олег Бартунов и Иван Панченко
PostgreSQL
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
Hacking PostgreSQL. Обзор архитектуры.
Расширяемость PostgreSQL для хакеров и архитекторов / Олег Бартунов, Александ...
PostgreSQL в высоконагруженных проектах
PostgreSQL on sas/ssd/nvme/nvdimm
SAMag2007 Conference: PostgreSQL 8.3 presentation
20160303 Hacking PostgreSQL Тема 02 Сообщество PostgreSQL и инструменты разра...
В ногу со временем, или как делать upgrade PostgreSQL / Андрей Сальников (Dat...

More from Alex Chistyakov (20)

PDF
My slides from DevOpsDays 2019
PDF
My slides from BMM №3 May 2019
PDF
My slides from DevOps-40 meetup Jun 2019
PDF
My slides from SECR'2018
PDF
My slides from the first SPb SRE community meetup at DataArt
PDF
My slides from CC'2019
PDF
My slides from BMM №4 Nov 2019
PDF
My slides from DevOps-40 meetup Oct 2019
PDF
My slides from DevOps-40 meetup Dec 2019
PDF
Configuration management and Kubernetes
PDF
Ansible and other stuff
PDF
Python performance engineering in 2017
PDF
My talk at SPb SQA sub-meetup of ITGM
PDF
My talk at SECR 2017
PDF
On scaling teams
PDF
MariaDB workshop
PDF
Docker for JS people
PDF
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
PDF
My talk on GitHub open data at ITGM #10
PDF
My talk on DevOps :) at Stachka 2017
My slides from DevOpsDays 2019
My slides from BMM №3 May 2019
My slides from DevOps-40 meetup Jun 2019
My slides from SECR'2018
My slides from the first SPb SRE community meetup at DataArt
My slides from CC'2019
My slides from BMM №4 Nov 2019
My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Dec 2019
Configuration management and Kubernetes
Ansible and other stuff
Python performance engineering in 2017
My talk at SPb SQA sub-meetup of ITGM
My talk at SECR 2017
On scaling teams
MariaDB workshop
Docker for JS people
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on GitHub open data at ITGM #10
My talk on DevOps :) at Stachka 2017

My talk on administering PostgreSQL

  • 1. PostgreSQL глазами инженера по эксплуатации Смерть эксплуататорам и программистам! Александр Чистяков, главный инженер Git in Sky, 2015
  • 2. Мы § A small consulting company § Web operations engineers § Performance engineers § Elephant lovers § Знаем английский :) Как пасти слонов. 2015
  • 3. Вы § Инженеры по эксплуатации? § Веб(?)-разработчики? § Любите слонов § Может быть, пони вы тоже любите? Как пасти слонов. 2015
  • 4. Повестка дня § Что такое “хорошо” и что такое “плохо” § Случаи из жизни § Раздача слонов и материализация views § Границы применимости, законы физики и другое занудство § PostgreSQL vs. MySQL, PostgreSQL vs. MongoDB, ... Как пасти слонов. 2015
  • 5. Что мы эксплуатируем § В основном — PostgreSQL 9.3.X § В недавнем прошлом — 9.1.X и 9.2.X § Уже начали использовать 9.4 Как пасти слонов. 2015
  • 6. Составляющие процесса эксплуатации § Sizing & capacity planning § Установка и настройка § Репликация § Бэкап § Мониторинг § Соблюдение законов физики § Обновление схемы БД и версий Как пасти слонов. 2015
  • 7. Sizing & capacity planning § PostgreSQL — современная база данных § Очень производительная! § Поэтому sizing и capacity planning мы делать не будем § И обсуждать тоже не будем § Зачем время тратить? Как пасти слонов. 2015
  • 8. Установка и настройка § Как правило — ничего удивительного § Однажды мы запустили PostgreSQL в Docker § Было не очень удобно, .... § Однажды мы запустили PostgreSQL в Amazon § Но про capacity planning мы решили молчать Как пасти слонов. 2015
  • 9. Репликация § Бывает: § «Встроенная» асинхронная § «Встроенная» синхронная § «Внешняя» триггерная § Не бывает: § Мастер-мастер (хотя именно ее все и просят) § Пока не пробовали: logical decoding Как пасти слонов. 2015
  • 10. Встроенная репликация § Работает вот уже примерно два года § Настраивается в < 10 простых шагов § Ничего удивительного § Лучше настраивать сразу, пока база еще маленькая § Если база большая — возьмите WALs с бэкапа Как пасти слонов. 2015
  • 11. Внешняя триггерная репликация § Не нужна* Как пасти слонов. 2015
  • 12. Бэкап § Многих славный путь: § pgdump => § barman => § отрицание, гнев, торг, депрессия, смирение § Космодемьянский на мой доклад не пришел, поэтому ZFS! Как пасти слонов. 2015
  • 13. barman § Как часто делать базовый бэкап — time/space trade-off § Ориентируйтесь на размер WALs и скорость восстановления § Немного нарушает принцип наименьшего удивления - хранит WALs в сжатом виде без расширения .gz § Даже будучи установлен локально, хочет забирать WAL'ы по ssh Как пасти слонов. 2015
  • 14. Обновление схемы БД § ALTER TABLE ADD COLUMN .... DEFAULT Как пасти слонов. 2015
  • 15. Обновление версий § Задача, отсутствующая в мире MySQL § В мире PostgreSQL до версии 9.4 — триггерная репликация § Bucardo Как пасти слонов. 2015
  • 16. Bucardo § Устанавливается почти не вызывая удивления § В каком каталоге .pgpass? § Работает почти не вызывая удивления § https://gist.github.com/alexclear/a11deed1be3b1d045187 § Если в бизнес-логике используется TRUNCATE — беда Как пасти слонов. 2015
  • 17. Bucardo § 9.3 — 9.4, 2.0 Tb — 1.7 Tb Как пасти слонов. 2015
  • 18. Мониторинг § В PostgreSQL масса всяких параметров, ни один из которых мне не интересен Как пасти слонов. 2015
  • 19. Мониторинг § Индексы должны помещаться в память!* Как пасти слонов. 2015
  • 20. Мониторинг § pg_stat_statements § POWA § Надстройка над pg_stat_statements, которая умеет хранить историю § shared_preload_libraries = 'powa,pg_stat_statements' § При апгрейде базы не забыть пересобрать § Не работает* Как пасти слонов. 2015
  • 21. Sizing & capacity planning § Для богатых: § ISBN-10: 1849516960 (вся первая часть книги) § Для бедных: § а) взять железо, какое было в магазине § б) задать целевое значение метрики § в) протестировать под нагрузкой § г) плакать, проклинать себя, жизнь и индустрию Как пасти слонов. 2015
  • 22. А что делать, если слон устал? § У одной моей подруги с ее парнем § Исходно было нужно 3K RPS на вставку § Требования возросли до 30K RPS за две недели до старта § К счастью, есть немного времени подумать § и поработать § Здесь есть кто-то с 30K вставок в секунду в PostgreSQL? Как пасти слонов. 2015
  • 23. Слайд памяти Курта Кобейна § Дорогая, я затюнил bgwriter Как пасти слонов. 2015
  • 24. Объективация женщины это плохо! Как пасти слонов. 2015
  • 25. Слон слону — слон! § Что такое “база данных” и зачем она нужна? § (К слову, зачем нужна MongoDB, я так и не понял) § Size does matter — smaller is better! § Индексы в PostgreSQL, все остальное — где-нибудь еще Как пасти слонов. 2015
  • 26. Выводы § Слон — отличное домашнее животное § Слоны требуют ухода § Не обижайте слонов! Как пасти слонов. 2015
  • 27. С вами был Александр Чистяков, главный инженер Git in Sky [email protected] http://gitinsky.com http://meetup.com/DevOps-40 Пожалуйста, ваши вопросы. Спасибо за внимание!