SlideShare a Scribd company logo
1 of 35
Download to read offline
Мониторинг и отладка MySQL
Максимум информации при минимальных потерях
Света Смирнова
Техническая поддержка MySQL
19 июня 2015 года
Введение: конфликт желаний и
возможностей
Почему мониторинг - это дорого?
Как найти "золотое сечение"?
Включаем по требованию для решения
конкретной проблемы
Итоги
2 www.percona.com
Конфликт желаний и возможностей
3 www.percona.com
Желания
• При возникновении проблемы нам
нужно как можно больше информации
• Во всяком случае достаточно для
диагностики конкретного случая
• При этом сайт не должен замедлиться
ни на наносекунду
4 www.percona.com
Возможности
• Почти любой мониторинг - это дорого
• Стоит задуматься о
• Памяти
• Месте на диске
• Процессорном времени
• Всём сразу
5 www.percona.com
Тестируем
• Всё включено:
./mtr –start innodb –mysqld=–core-file
–mysqld=–general-log=1 –mysqld=–innodb-monitor-enable
–mysqld=–innodb-print-all-deadlocks –mysqld=–innodb-status-file=1
–mysqld=–innodb-status-output=1 –mysqld=–log-bin –mysqld=–slow-query-log
–mysqld=–log-warnings –mysqld=–performance-schema=1 –mysqld=–userstat=1
–mysqld=–thread-statistics=1
6 www.percona.com
Тестируем
• Выключено по максимуму:
./mtr –start innodb –mysqld=–general-log=0 –mysqld=–innodb-monitor-disable
–mysqld=–innodb-print-all-deadlocks=0 –mysqld=–innodb-status-file=0
–mysqld=–innodb-status-output=0 –mysqld=–slow-query-log=0
–mysqld=–performance-schema=0
–mysqld=–userstat=0 –mysqld=–thread-statistics=0
7 www.percona.com
Тестируем
• Percona-Server-5.6.24-rel72.2-
Linux.x86_64.ssl100
• Мой ноутбук
• Стандартный OLTP SysBench тест:
~/build/sysbench/bin/sysbench –mysql-user=root –mysql-host=127.0.0.1
–mysql-port=13001 –test=$HOME/src/sysbench/sysbench/tests/db/oltp.lua
–num-threads=8 –oltp-table-size=100000 prepare
for N in ‘echo 1 2 4 8 16‘; do
~/build/sysbench/bin/sysbench –mysql-user=root –mysql-host=127.0.0.1
–mysql-port=13001 –test=$HOME/src/sysbench/sysbench/tests/db/oltp.lua
–num-threads=$N –max-time=60 run;
done
8 www.percona.com
Иллюстрация
1 2 4 8 16
2,000
4,000
6,000
8,000
Threads
Events
Выключено
Включено
9 www.percona.com
Почему мониторинг - это дорого?
10 www.percona.com
Логи требуют дискового пространства
• General query log может занять всё
свободное место на диске
• Что делать в случае нагрузки в
40GB/час только на запись?
11 www.percona.com
Логи требуют дискового пространства
• General query log может занять всё
свободное место на диске
• Что делать в случае нагрузки в
40GB/час только на запись?
• Rotate policy
• Рекомендации из официального
руководства
• Rotating MySQL slow logs safely
11 www.percona.com
Память
• Performance Schema
• Требует выделенной памяти
• Память выделяется при старте и
занята даже если P_S не
используется - исправлено в 5.7!
• Размер таблиц history ограничен
• Information Schema
• Некоторые запросы используют
чересчур много памяти
• bug #72322 исправлен в 5.5.44,
5.6.25, 5.7.8, 5.8.0 - обновитесь!
12 www.percona.com
CPU usage
• Performance Schema
• Работает за счёт кода,
срабатываемого при каждом вызове
исследуемой функции
• То есть каждый анализируемый
участок кода вызывает срабатывание
ещё одного вызова
• Binary log
• В случае использования sync_binlog
добавляются дополнительные
вызовы fsync
13 www.percona.com
Сеть
• MySQL Proxy и другие proxy
• Дополнительный слой
14 www.percona.com
Внутренние блокировки
• SHOW SLAVE STATUS
• SHOW [GLOBAL] STATUS
• Производительность замедляется
при параллельном использовании
• Bug #42930 исправлен в 5.7.0:
готовьтесь обновиться!
• Information Schema
• Binary log
15 www.percona.com
Оптом
• Приложения с графическим
интерфейсом
• Как правило используют те же
инструменты
• STATUS VARIABLES
• MySQL и системные логи
• Performance Schema
• Имеют те же ограничения
16 www.percona.com
Как найти "золотое сечение"?
Нельзя вот так взять и запустить
mysqld без диагностики вообще!
17 www.percona.com
Начинаем с минимально неоходимого
• MySQL error log
• Log files операционной системы
18 www.percona.com
Кое-что можно включать по требованию
• General, slow query log файлы
• InnoDB Monitors
• Consumers в Performance Schema
• Performance Schema уже включена и
память выделена
• Data collection при помощи pt-stalk
• Переменные, статусы сервера и
InnoDB, processlist
• Системная диагностика
19 www.percona.com
Решаем конкретную проблему
20 www.percona.com
Динамически
• General query log
• Slow query log
• InnoDB Monitors
• Performance Schema instruments и
consumers
21 www.percona.com
Требуется перезапуск
• Error log
• Binary log
• Performance Schema
22 www.percona.com
В зависимости от задачи
• Оптимизация
• Запросов
• Приложения в целом
• Блокировки
• Крэши
• Неожиданное поведение
23 www.percona.com
Оптимизация запросов
• Slow query log
• pt-query-digest
• Таблицы в P_S: statements и stages
• Query Analyzer (QUAN) в MySQL
Enterprise Monitor (MEM)
• Percona Cloud Tools (PCT)
24 www.percona.com
Оптимизация приложения в целом
• InnoDB Monitors
• Performance Schema
• Сбор данных при необходимости
• Запущенные вручную SHOW и
SELECT ... FROM
INFORMATION_SCHEMA
• pt-stalk
• PCT
• MEM
25 www.percona.com
Блокировки
• P_S MDL tables
• InnoDB Monitors
• innodb_print_all_deadlocks
26 www.percona.com
Крэши
• Core dumps
• General query log
• Binary log
• Содержит только команды,
изменяющие данные
• Крэш может быть вызван и
SELECT-ом
27 www.percona.com
Неожиданное поведение
• General query log
• Binary log
• Только для непредвиденных данных
в базе
28 www.percona.com
Итоги
29 www.percona.com
Всегда включено
• MySQL error log
• Системные логи
30 www.percona.com
Включаем по требованию
• Performance Schema
• InnoDB Monitors
• General, slow, binary log
31 www.percona.com
Дополнительная информация
• mysqld-option-tables.html
• PCT(http://cloud.percona.com/)
• MySQL Enterprise Monitor
• Percona Toolkit
32 www.percona.com
Место для вопросов
???
33 www.percona.com
Спасибо!
http://www.slideshare.net/SvetaSmirnova
https://twitter.com/svetsmirnova
34 www.percona.com

More Related Content

What's hot

Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Ontico
 
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)Ontico
 
Эффективная отладка репликации MySQL
Эффективная отладка репликации MySQLЭффективная отладка репликации MySQL
Эффективная отладка репликации MySQLSveta Smirnova
 
"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)AvitoTech
 
Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)
Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)
Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)Ontico
 
Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.Alexey Lesovsky
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Ontico
 
Performance Schema для отладки MySQL приложений
Performance Schema для отладки MySQL приложенийPerformance Schema для отладки MySQL приложений
Performance Schema для отладки MySQL приложенийSveta Smirnova
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Ontico
 
MyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDBMyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDBSergey Petrunya
 
Как делать backup MySQL
Как делать backup MySQLКак делать backup MySQL
Как делать backup MySQLSveta Smirnova
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Ontico
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"Technopark
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"Technopark
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)Ontico
 
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...Ontico
 
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Ontico
 
PostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationPostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationAlexey Lesovsky
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...Technopark
 
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)Ontico
 

What's hot (20)

Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
 
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
 
Эффективная отладка репликации MySQL
Эффективная отладка репликации MySQLЭффективная отладка репликации MySQL
Эффективная отладка репликации MySQL
 
"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)
 
Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)
Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)
Использование очередей асинхронных сообщений с PostgreSQL (Илья Космодемьянский)
 
Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
 
Performance Schema для отладки MySQL приложений
Performance Schema для отладки MySQL приложенийPerformance Schema для отладки MySQL приложений
Performance Schema для отладки MySQL приложений
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
 
MyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDBMyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDB
 
Как делать backup MySQL
Как делать backup MySQLКак делать backup MySQL
Как делать backup MySQL
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
 
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
 
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
 
PostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationPostgreSQL Streaming Replication
PostgreSQL Streaming Replication
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
 
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)
 

Similar to Мониторинг и отладка MySQL: максимум информации при минимальных потерях

Мониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потеряхМониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потеряхSveta Smirnova
 
Мониторинг и отладка MySQL: максимум информации при минимальных потерях / Све...
Мониторинг и отладка MySQL: максимум информации при минимальных потерях / Све...Мониторинг и отладка MySQL: максимум информации при минимальных потерях / Све...
Мониторинг и отладка MySQL: максимум информации при минимальных потерях / Све...Ontico
 
История небольшого успеха с PostgreSQL – Владимир Бородин
История небольшого успеха с PostgreSQL – Владимир БородинИстория небольшого успеха с PostgreSQL – Владимир Бородин
История небольшого успеха с PostgreSQL – Владимир БородинYandex
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)Nikolay Samokhvalov
 
Опыт внедрения OpenStack
Опыт внедрения OpenStackОпыт внедрения OpenStack
Опыт внедрения OpenStackYandex
 
OpenSource SQL Databases Enter Millions Queries per Second Era
OpenSource SQL Databases Enter Millions Queries per Second EraOpenSource SQL Databases Enter Millions Queries per Second Era
OpenSource SQL Databases Enter Millions Queries per Second EraSveta Smirnova
 
Mysql replication DevConf 2012
Mysql replication DevConf 2012Mysql replication DevConf 2012
Mysql replication DevConf 2012Alex Chistyakov
 
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...Nikita Makarov
 
История небольшого успеха с PostgreSQL
История небольшого успеха с PostgreSQLИстория небольшого успеха с PostgreSQL
История небольшого успеха с PostgreSQLdev1ant
 
Российская СУБД Postgres Pro
Российская СУБД Postgres ProРоссийская СУБД Postgres Pro
Российская СУБД Postgres ProAndrey Fleyta
 
PUG #9 at OWOX: Поиск узких мест в приложении на PHP
PUG #9 at OWOX: Поиск узких мест в приложении на PHP                PUG #9 at OWOX: Поиск узких мест в приложении на PHP
PUG #9 at OWOX: Поиск узких мест в приложении на PHP Анна Магас
 
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5DevDay
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Ontico
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Nikolay Sivko
 
Практический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQLПрактический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQLAlex Chistyakov
 
Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5Docsvision
 
Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Fwdays
 
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...IBS
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusVladd Ev
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise MonitorVittorio Cioe
 

Similar to Мониторинг и отладка MySQL: максимум информации при минимальных потерях (20)

Мониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потеряхМониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
 
Мониторинг и отладка MySQL: максимум информации при минимальных потерях / Све...
Мониторинг и отладка MySQL: максимум информации при минимальных потерях / Све...Мониторинг и отладка MySQL: максимум информации при минимальных потерях / Све...
Мониторинг и отладка MySQL: максимум информации при минимальных потерях / Све...
 
История небольшого успеха с PostgreSQL – Владимир Бородин
История небольшого успеха с PostgreSQL – Владимир БородинИстория небольшого успеха с PostgreSQL – Владимир Бородин
История небольшого успеха с PostgreSQL – Владимир Бородин
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
 
Опыт внедрения OpenStack
Опыт внедрения OpenStackОпыт внедрения OpenStack
Опыт внедрения OpenStack
 
OpenSource SQL Databases Enter Millions Queries per Second Era
OpenSource SQL Databases Enter Millions Queries per Second EraOpenSource SQL Databases Enter Millions Queries per Second Era
OpenSource SQL Databases Enter Millions Queries per Second Era
 
Mysql replication DevConf 2012
Mysql replication DevConf 2012Mysql replication DevConf 2012
Mysql replication DevConf 2012
 
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
 
История небольшого успеха с PostgreSQL
История небольшого успеха с PostgreSQLИстория небольшого успеха с PostgreSQL
История небольшого успеха с PostgreSQL
 
Российская СУБД Postgres Pro
Российская СУБД Postgres ProРоссийская СУБД Postgres Pro
Российская СУБД Postgres Pro
 
PUG #9 at OWOX: Поиск узких мест в приложении на PHP
PUG #9 at OWOX: Поиск узких мест в приложении на PHP                PUG #9 at OWOX: Поиск узких мест в приложении на PHP
PUG #9 at OWOX: Поиск узких мест в приложении на PHP
 
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)
 
Практический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQLПрактический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQL
 
Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5
 
Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"
 
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rus
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise Monitor
 

More from Sveta Smirnova

MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?Sveta Smirnova
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringSveta Smirnova
 
MySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveMySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveSveta Smirnova
 
MySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for DevelopersMySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for DevelopersSveta Smirnova
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOpsSveta Smirnova
 
MySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговMySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговSveta Smirnova
 
MySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your BusinessMySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your BusinessSveta Smirnova
 
Introduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]sIntroduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]sSveta Smirnova
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOpsSveta Smirnova
 
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB ClusterHow to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB ClusterSveta Smirnova
 
How to migrate from MySQL to MariaDB without tears
How to migrate from MySQL to MariaDB without tearsHow to migrate from MySQL to MariaDB without tears
How to migrate from MySQL to MariaDB without tearsSveta Smirnova
 
Modern solutions for modern database load: improvements in the latest MariaDB...
Modern solutions for modern database load: improvements in the latest MariaDB...Modern solutions for modern database load: improvements in the latest MariaDB...
Modern solutions for modern database load: improvements in the latest MariaDB...Sveta Smirnova
 
How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?Sveta Smirnova
 
How to Avoid Pitfalls in Schema Upgrade with Galera
How to Avoid Pitfalls in Schema Upgrade with GaleraHow to Avoid Pitfalls in Schema Upgrade with Galera
How to Avoid Pitfalls in Schema Upgrade with GaleraSveta Smirnova
 
How Safe is Asynchronous Master-Master Setup?
 How Safe is Asynchronous Master-Master Setup? How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?Sveta Smirnova
 
Introduction to MySQL Query Tuning for Dev[Op]s
Introduction to MySQL Query Tuning for Dev[Op]sIntroduction to MySQL Query Tuning for Dev[Op]s
Introduction to MySQL Query Tuning for Dev[Op]sSveta Smirnova
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Sveta Smirnova
 
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...Sveta Smirnova
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Sveta Smirnova
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in ActionSveta Smirnova
 

More from Sveta Smirnova (20)

MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and Monitoring
 
MySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveMySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to Have
 
MySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for DevelopersMySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for Developers
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOps
 
MySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговMySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации багов
 
MySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your BusinessMySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your Business
 
Introduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]sIntroduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]s
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOps
 
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB ClusterHow to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
 
How to migrate from MySQL to MariaDB without tears
How to migrate from MySQL to MariaDB without tearsHow to migrate from MySQL to MariaDB without tears
How to migrate from MySQL to MariaDB without tears
 
Modern solutions for modern database load: improvements in the latest MariaDB...
Modern solutions for modern database load: improvements in the latest MariaDB...Modern solutions for modern database load: improvements in the latest MariaDB...
Modern solutions for modern database load: improvements in the latest MariaDB...
 
How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?
 
How to Avoid Pitfalls in Schema Upgrade with Galera
How to Avoid Pitfalls in Schema Upgrade with GaleraHow to Avoid Pitfalls in Schema Upgrade with Galera
How to Avoid Pitfalls in Schema Upgrade with Galera
 
How Safe is Asynchronous Master-Master Setup?
 How Safe is Asynchronous Master-Master Setup? How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?
 
Introduction to MySQL Query Tuning for Dev[Op]s
Introduction to MySQL Query Tuning for Dev[Op]sIntroduction to MySQL Query Tuning for Dev[Op]s
Introduction to MySQL Query Tuning for Dev[Op]s
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?
 
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in Action
 

Мониторинг и отладка MySQL: максимум информации при минимальных потерях

  • 1. Мониторинг и отладка MySQL Максимум информации при минимальных потерях Света Смирнова Техническая поддержка MySQL 19 июня 2015 года
  • 2. Введение: конфликт желаний и возможностей Почему мониторинг - это дорого? Как найти "золотое сечение"? Включаем по требованию для решения конкретной проблемы Итоги 2 www.percona.com
  • 3. Конфликт желаний и возможностей 3 www.percona.com
  • 4. Желания • При возникновении проблемы нам нужно как можно больше информации • Во всяком случае достаточно для диагностики конкретного случая • При этом сайт не должен замедлиться ни на наносекунду 4 www.percona.com
  • 5. Возможности • Почти любой мониторинг - это дорого • Стоит задуматься о • Памяти • Месте на диске • Процессорном времени • Всём сразу 5 www.percona.com
  • 6. Тестируем • Всё включено: ./mtr –start innodb –mysqld=–core-file –mysqld=–general-log=1 –mysqld=–innodb-monitor-enable –mysqld=–innodb-print-all-deadlocks –mysqld=–innodb-status-file=1 –mysqld=–innodb-status-output=1 –mysqld=–log-bin –mysqld=–slow-query-log –mysqld=–log-warnings –mysqld=–performance-schema=1 –mysqld=–userstat=1 –mysqld=–thread-statistics=1 6 www.percona.com
  • 7. Тестируем • Выключено по максимуму: ./mtr –start innodb –mysqld=–general-log=0 –mysqld=–innodb-monitor-disable –mysqld=–innodb-print-all-deadlocks=0 –mysqld=–innodb-status-file=0 –mysqld=–innodb-status-output=0 –mysqld=–slow-query-log=0 –mysqld=–performance-schema=0 –mysqld=–userstat=0 –mysqld=–thread-statistics=0 7 www.percona.com
  • 8. Тестируем • Percona-Server-5.6.24-rel72.2- Linux.x86_64.ssl100 • Мой ноутбук • Стандартный OLTP SysBench тест: ~/build/sysbench/bin/sysbench –mysql-user=root –mysql-host=127.0.0.1 –mysql-port=13001 –test=$HOME/src/sysbench/sysbench/tests/db/oltp.lua –num-threads=8 –oltp-table-size=100000 prepare for N in ‘echo 1 2 4 8 16‘; do ~/build/sysbench/bin/sysbench –mysql-user=root –mysql-host=127.0.0.1 –mysql-port=13001 –test=$HOME/src/sysbench/sysbench/tests/db/oltp.lua –num-threads=$N –max-time=60 run; done 8 www.percona.com
  • 9. Иллюстрация 1 2 4 8 16 2,000 4,000 6,000 8,000 Threads Events Выключено Включено 9 www.percona.com
  • 10. Почему мониторинг - это дорого? 10 www.percona.com
  • 11. Логи требуют дискового пространства • General query log может занять всё свободное место на диске • Что делать в случае нагрузки в 40GB/час только на запись? 11 www.percona.com
  • 12. Логи требуют дискового пространства • General query log может занять всё свободное место на диске • Что делать в случае нагрузки в 40GB/час только на запись? • Rotate policy • Рекомендации из официального руководства • Rotating MySQL slow logs safely 11 www.percona.com
  • 13. Память • Performance Schema • Требует выделенной памяти • Память выделяется при старте и занята даже если P_S не используется - исправлено в 5.7! • Размер таблиц history ограничен • Information Schema • Некоторые запросы используют чересчур много памяти • bug #72322 исправлен в 5.5.44, 5.6.25, 5.7.8, 5.8.0 - обновитесь! 12 www.percona.com
  • 14. CPU usage • Performance Schema • Работает за счёт кода, срабатываемого при каждом вызове исследуемой функции • То есть каждый анализируемый участок кода вызывает срабатывание ещё одного вызова • Binary log • В случае использования sync_binlog добавляются дополнительные вызовы fsync 13 www.percona.com
  • 15. Сеть • MySQL Proxy и другие proxy • Дополнительный слой 14 www.percona.com
  • 16. Внутренние блокировки • SHOW SLAVE STATUS • SHOW [GLOBAL] STATUS • Производительность замедляется при параллельном использовании • Bug #42930 исправлен в 5.7.0: готовьтесь обновиться! • Information Schema • Binary log 15 www.percona.com
  • 17. Оптом • Приложения с графическим интерфейсом • Как правило используют те же инструменты • STATUS VARIABLES • MySQL и системные логи • Performance Schema • Имеют те же ограничения 16 www.percona.com
  • 18. Как найти "золотое сечение"? Нельзя вот так взять и запустить mysqld без диагностики вообще! 17 www.percona.com
  • 19. Начинаем с минимально неоходимого • MySQL error log • Log files операционной системы 18 www.percona.com
  • 20. Кое-что можно включать по требованию • General, slow query log файлы • InnoDB Monitors • Consumers в Performance Schema • Performance Schema уже включена и память выделена • Data collection при помощи pt-stalk • Переменные, статусы сервера и InnoDB, processlist • Системная диагностика 19 www.percona.com
  • 22. Динамически • General query log • Slow query log • InnoDB Monitors • Performance Schema instruments и consumers 21 www.percona.com
  • 23. Требуется перезапуск • Error log • Binary log • Performance Schema 22 www.percona.com
  • 24. В зависимости от задачи • Оптимизация • Запросов • Приложения в целом • Блокировки • Крэши • Неожиданное поведение 23 www.percona.com
  • 25. Оптимизация запросов • Slow query log • pt-query-digest • Таблицы в P_S: statements и stages • Query Analyzer (QUAN) в MySQL Enterprise Monitor (MEM) • Percona Cloud Tools (PCT) 24 www.percona.com
  • 26. Оптимизация приложения в целом • InnoDB Monitors • Performance Schema • Сбор данных при необходимости • Запущенные вручную SHOW и SELECT ... FROM INFORMATION_SCHEMA • pt-stalk • PCT • MEM 25 www.percona.com
  • 27. Блокировки • P_S MDL tables • InnoDB Monitors • innodb_print_all_deadlocks 26 www.percona.com
  • 28. Крэши • Core dumps • General query log • Binary log • Содержит только команды, изменяющие данные • Крэш может быть вызван и SELECT-ом 27 www.percona.com
  • 29. Неожиданное поведение • General query log • Binary log • Только для непредвиденных данных в базе 28 www.percona.com
  • 31. Всегда включено • MySQL error log • Системные логи 30 www.percona.com
  • 32. Включаем по требованию • Performance Schema • InnoDB Monitors • General, slow, binary log 31 www.percona.com
  • 33. Дополнительная информация • mysqld-option-tables.html • PCT(http://cloud.percona.com/) • MySQL Enterprise Monitor • Percona Toolkit 32 www.percona.com