Страницы

Сохранить статью у себя в соцсети:

вторник, 24 ноября 2015 г.

Introduction into PostgreSQL pg_stat_activity.

Введение в pg_stat_activity.

уровень материала: intermediate.

СУБД PostgreSQL имеет очень сильные встроенные средства позволяющие отслеживать текущее состояние базы данных. Одно из таких средств это pg_stat_activity. Это системное представление которое позволяет наблюдать за происходящими в базе процессами в реальном времени. Это представление можно сравнить с системной командой top, если вы подозреваете или четко уверены что ваша база не в порядке, то это одно из первых мест откуда следует начать расследование. Ниже я приведу полезные примеры как можно использовать это представление для выявления ненормальной активности. Для работы нам понадобится любой postgresql клиент, например psql. 

среда, 4 ноября 2015 г.

Deep dive into PostgreSQL internal statistics.

Слайды доклада на Highload++ 2015.

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

В докладе речь пойдет о подсистеме сбора статистики, о том какая информация доступна для оценки эффективности PostgreSQL, как её получить, не прибегая к зоопарку инструментов. Как интерпретировать и использовать полученную информацию, как найти узкие места, устранить их и повысить производительность PostgreSQL.


вторник, 22 сентября 2015 г.

PostgreSQL hot standby feedback. How it works.

Время от времени приходится сталкиваться с вопросом "У нас отваливаются запросы на реплике, мы включили hot_standby_feedback, но запросы на реплике все равно периодически отваливаются. Почему?" После прочтения документации, может сложится впечателение что фидбек решает проблемы отмены запросов и если его включить то конфликты пропадут. Однако это не совсем так. В этой статье мы разберемся что такое фидбек, как он работает и какие проблемы призван решать.

English version available in our company's blog.

воскресенье, 30 августа 2015 г.

pgCenter - top-like statistics viewer for PostgreSQL.

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

среда, 17 июня 2015 г.

3 reasons to use PgBouncer.

3 причины использовать PgBouncer.

Для тех кто не знает, PgBouncer это легковесный пулер соединений для PostgreSQL. И ниже 3 причины почему его стоит использовать.
- Экономия ресурсов сервера и уменьшение latency на запросах.
- Поддержка online перезапуска без потери клиентских соединений.
- Приостановка клиентских соединения для тихого перезапуска PostgreSQL.

четверг, 11 июня 2015 г.

PostgreSQL cluster upgrade.

PostgreSQL streaming replication cluster major version upgrade with pg_upgrade and rsync on CentOS 7 Linux.

Обновление мажорной версии PostgreSQL как правило довольно нудное, так как нужно соблюсти массу условий. Особенно доставляет то что pg_upgrade не умеет обновлять stand-by сервера. Однако это возможно сделать через rsync. Ниже видео процесса обновления c 9.3 до 9.4.
P.S. Вобще обновление через pg_upgrade это почти всегда приключение, поэтому не ленитесь читать документацию по pg_upgrade для версии на которую вы будете переезжать.

среда, 3 июня 2015 г.

pgbConsole - admin console for PgBouncer.

pgbConsole - top-like PgBouncer admin console.

Если вы занимаетесь адмнистрированием PostgreSQL то наверняка знакомы с PgBouncer - легковесным пулером соединений для PostgreSQL. PgBouncer очень часто используется в конфигурациях с большим числом подключений к базе данных. И его использование как правило всегда оправдано. PgBouncer позволяет уменьшить использование ресурсов за счет уменьшения числа подключений к базе данных.

пятница, 22 мая 2015 г.

PostgreSQL Troubleshooting On-Line.

PostgreSQL Meetup on RITFest 2015 at Moscow, Russia.

Сегодня прошел первый день фестиваля РИТ, на котором был митап посвященный СУБД PostgreSQL. На митапе мы с коллегой Ilya Kosmodemyansky показали процесс поиска и устранения проблем в PostgreSQL. В качестве примера были взяты два наиболее распространенных случая:
1) Кривой релиз - после выкладки кода обнаруживается что производительность резко упала.
2) Рост нагрузки - ситуация когда с ростом посещаемости и увеличением числа подключений к базе следует использовать пуллинг соединений (pgbouncer).
Отдельное спасибо нашим друзьям из OKmeter за качественный и удобный мониторинг.
Презентация на память:

среда, 22 апреля 2015 г.

Linux Performance Observability Tools. Sysstat.

Продолжаем обзор инструментов для наблюдения за производительностью. Сегодня я бы хотел рассказать о таком наборе утилит как sysstat. Это очень интересный пакет. Прежде всего он интересен тем что позволяет вести историю производительности. Это актуально если у вас небольшое количество хостов и вы не хотите развертывать отдельную систему мониторинга. Кроме того sysstat предоставляет несколько утилит для online наблюдения за системой. 

среда, 8 апреля 2015 г.

PostgreSQL и WARNING: pgstat wait timeout.

pgstat wait timeout

Сегодня я бы хотел рассказать о такой ошибке как "pgstat wait timeout". Довольно малоинформативное сообщение, не так ли?

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

Давайте попробуем разобраться почему это происходит.

четверг, 2 апреля 2015 г.

Linux Performance Observability Tools. Top.

Linux Performance Observability Tools. Top.

Есть такая картинка Linux Performance Observability Tools. На первый взгляд она может показаться непонятной, поэтому давайте разберемся что здесь изображено. На этой картинке в очень упрощенном виде отражена структура ОС Linux, а каждый компонент структуры подписан инструментом который позволяет отслеживать работу этого компонента. Эти инструменты очень полезны в случае когда сервер "тормозит" и нужно определить какой из компонентов вызывает тормоза. Cистемный администратор или инженер должен уметь пользоваться большинством из тех инструментов что отражены на картинке. Как вы видите, инструментов очень много, какие-то могут быть вам знакомы, а какие-то - нет. Некоторые из этих инструментов довольно просты в обращении, а какие-то наоборот требуют высокой квалификации и дополнительных знаний. В последующем цикле статей я постараюсь рассмотреть наиболее популярные и интересные утилиты и рассказать о том как читать информацию которую они предоставляют и как использовать её в дальнейшем. 
English version available here.

среда, 1 апреля 2015 г.

И еще один блог.

И снова здравствуйте!
Небольшая новость. После долгого перерыва я вновь решил писать в блог, делиться опытом, рассказывать всякие истории профессионального плана, иногда буду постить howto-ролики с ютуба. Однако это не все. Теперь дополнительно я буду автором еще одного блога. Встречайте, блог нашей компани PostgreSQL Consulting. Статьи там будут преимущественно на английском языке. Да, да завоевываем новые рынки))). Поэтому добро пожаловать. 
Здесь же я по-прежнему будут выкладывать статьи на роодном русском языке! Так что не спешите удалять меня из своих RSS лент;) До скорых встреч.

понедельник, 6 октября 2014 г.

PostgreSQL stand-by promote

PostgreSQL: Как превратить stand-by в master

В ходе эксплуатации потоковой репликации, может возникнуть необходимость переключения standby сервера в режим мастера. Причины могут быть самые разные, например выход мастера из строя, обновление hardware сервера и т.п. Для выполнения этой операции существует несколько способов.
  1. через перезапуск postgresql
  2. через создание триггер файла
  3. через утилиту pg_ctl
О них и пойдет речь в статье.

понедельник, 22 сентября 2014 г.

PostgreSQL query planning time and statistics target.

Влияние размера статистики на время планирования запроса в PostgreSQL.

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

четверг, 18 сентября 2014 г.

Network problem emulation with Iptables and Iproute2

Network problem emulation with Iptables and Iproute2

Однажды мне понадобилось в Zabbix сделать мониторинг потери пакетов между мастером и репликами (репликация плохо себя чувствует если канал не очень хороший). Для этого, в Zabbix есть встроенный параметр icmppingloss, на удаленный хост отправляется серия ICMP пакетов и результат фиксируется в системе мониторинга. И вот параметр добавлен, триггер настроен. Казалось бы задача выполена, однако как говорится "Доверяй, но проверяй". Осталось проверить что триггер сработает когда потери действительно будут. Итак, как сэмулировать потерю пакетов? Об этом, да и не только, пойдет речь под катом.


понедельник, 25 августа 2014 г.

Мониторинг PostgreSQL в Zabbix.

Мониторинг PostgreSQL в Zabbix.


PostgreSQL это современная, динамично развивающаяся СУБД с очень большим набором возможностей которые позволяют решать самый широкий спектр задач. Использование PostgreSQL как правило относится к очень критичному сегменту ИТ инфраструктуры который связан с обработкой и хранением данных. Учитывая особое место СУБД в инфраструктуре и степень критичности возложенных на нее задач, возникает вопрос мониторинга и надлежащего контроля за работой СУБД. В этом плане PostgreSQL обладает широкими внутренними средствами сбора и хранения статистики. Собираемая статистика позволяет получить довольно подробную картину о том что происходит под капотом в процессе функционирования СУБД. Эта статистика хранится в специальных системных таблицах-представлениях и постоянно обновляется. Выполняя обычные SQL запросы в эти таблицы можно получать разнообразные данные о базах, таблицах, индексах и других подсистемах СУБД. Ниже я описываю способ и средства для мониторинга PostgreSQL в системе мониторинга Zabbix. Мне нравится эта система мониторинга поскольку предоставляет широкие возможности для реализации самого кастомного мониторинга самых разных систем и процессов.

понедельник, 7 июля 2014 г.

PostgreSQL 9.4 and Huge Pages

PostgreSQL 9.4 with Huge Pages.

В PostgreSQL начиная с версии 9.4 появилась поддержка больших страниц. Это очень хорошая новость, с большими страницами я познакомился когда работал с виртуализацией. Коротко о чем же речь. В ОС Linux работа с памятью основывается на обращении к страницам размер которых равен 4kB (на самом деле зависит от платформы, проверить можно через getconf PAGE_SIZE), так вот когда объем памяти переваливает за несколько дестков, а то и сотни гигабайт управлять ею становится сложнее, увеличиваются накладные расходы на адресацию памяти и поддержание страничных таблиц. Для облегчения жизни и были придуманы большие страницы, размер которых может быть 2MB а то и 1GB. За счет использования больших страниц можно получить ощутимый прирост скорости работы и уменьшение отзывчивости в приложениях которые активно работают с памятью. Как я уже отметил, впервые я столкнулся с большими страницами при работе с виртуализацией, в частности с KVM. Проведенные в свое время тесты показали что прирост производительности виртуальных машин составил от 7 до 10% (измерялось все это дело синтетическими тестами различных сервисов внутри виртуальных машин). Теперь это появилось в PostgreSQL.

суббота, 5 июля 2014 г.

CentOS 7 Release Candidate now available.

CentOS 7 Release Candidate now available.

На днях в списке рассылки появилось сообщение что следом за RHEL7 вышел релиз-кандидат CentOS 7. Мне очень нравится RHEL-based операционнки поэтому я решил скачать образ и запустить виртуалку, дабы осмотреться что там и как. Ниже мини-инструкция с сылками.
скачиваем netinstall iso и устанавливаем с него систему. В качестве источника пакетов указываем это. После установки устанавливаем основной репозиторий, странно но настроенных репозиториев нету.
# vi /etc/yum.repos.d/centos.repo
[centos]
name=Base Packages for Enterprise Linux 7 - $basearch
baseurl=http://buildlogs.centos.org/centos/7/os/x86_64-latest
failovermethod=priority
enabled=1
gpgcheck=0

Ставим репозиторий EPEL.
# yum install http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm

Вот и все, теперь можно делать что душе вздумается)))

среда, 2 июля 2014 г.

PostgreSQL BDR Introduction.

Введение в PostgreSQL BDR.

PostgreSQL это не только стабильная и надежная СУБД но и плюс ко всем это динамично развивающийся продукт, в котором от релиза к релизу появляются самые разные прорывные вещи. Одной из таких технологий является потоковая репликация которая позволяет очень легко и дешево масштабировать базу данных на чтение. В статье речь пойдет о новой технологии BDR (Bi-Directional Replication).


вторник, 13 мая 2014 г.

10 ways to do PostgreSQL backup.

10 способов сделать резерную копию в PostgreSQL.

Я отношусь к тем людям которые делают резервное копирование. За время работы с PostgreSQL мне довелось часто настраивать резервное копирование, при этом условия и требования были самые разные. Однако при этом набор инструментов за редким исключением оставался неизменным. В этой статье поделюсь своим опытом в деле как можно брать резервные копии PostgreSQL.

Популярные сообщения

Профиль в Google+ Яндекс цитирования Яндекс.Метрика