Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Мониторинг и отладка MySQL
Максимум информации при минимальных потерях
Света Смирнова
Техническая поддержка MySQL
19 июня ...
Введение: конфликт желаний и
возможностей
Почему мониторинг - это дорого?
Как найти "золотое сечение"?
Включаем по требова...
Конфликт желаний и возможностей
3 www.percona.com
Желания
• При возникновении проблемы нам
нужно как можно больше информации
• Во всяком случае достаточно для
диагностики к...
Возможности
• Почти любой мониторинг - это дорого
• Стоит задуматься о
• Памяти
• Месте на диске
• Процессорном времени
• ...
Тестируем
• Всё включено:
./mtr –start innodb –mysqld=–core-file
–mysqld=–general-log=1 –mysqld=–innodb-monitor-enable
–my...
Тестируем
• Выключено по максимуму:
./mtr –start innodb –mysqld=–general-log=0 –mysqld=–innodb-monitor-disable
–mysqld=–in...
Тестируем
• Percona-Server-5.6.24-rel72.2-
Linux.x86_64.ssl100
• Мой ноутбук
• Стандартный OLTP SysBench тест:
~/build/sys...
Иллюстрация
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 может занять всё
свободное место на диске
• Что делать в случае на...
Логи требуют дискового пространства
• General query log может занять всё
свободное место на диске
• Что делать в случае на...
Память
• Performance Schema
• Требует выделенной памяти
• Память выделяется при старте и
занята даже если P_S не
используе...
CPU usage
• Performance Schema
• Работает за счёт кода,
срабатываемого при каждом вызове
исследуемой функции
• То есть каж...
Сеть
• MySQL Proxy и другие proxy
• Дополнительный слой
14 www.percona.com
Внутренние блокировки
• SHOW SLAVE STATUS
• SHOW [GLOBAL] STATUS
• Производительность замедляется
при параллельном использ...
Оптом
• Приложения с графическим
интерфейсом
• Как правило используют те же
инструменты
• STATUS VARIABLES
• MySQL и систе...
Как найти "золотое сечение"?
Нельзя вот так взять и запустить
mysqld без диагностики вообще!
17 www.percona.com
Начинаем с минимально неоходимого
• MySQL error log
• Log files операционной системы
18 www.percona.com
Кое-что можно включать по требованию
• General, slow query log файлы
• InnoDB Monitors
• Consumers в Performance Schema
• ...
Решаем конкретную проблему
20 www.percona.com
Динамически
• General query log
• Slow query log
• InnoDB Monitors
• Performance Schema instruments и
consumers
21 www.per...
Требуется перезапуск
• Error log
• Binary log
• Performance Schema
22 www.percona.com
В зависимости от задачи
• Оптимизация
• Запросов
• Приложения в целом
• Блокировки
• Крэши
• Неожиданное поведение
23 www....
Оптимизация запросов
• Slow query log
• pt-query-digest
• Таблицы в P_S: statements и stages
• Query Analyzer (QUAN) в MyS...
Оптимизация приложения в целом
• InnoDB Monitors
• Performance Schema
• Сбор данных при необходимости
• Запущенные вручную...
Блокировки
• P_S MDL tables
• InnoDB Monitors
• innodb_print_all_deadlocks
26 www.percona.com
Крэши
• Core dumps
• General query log
• Binary log
• Содержит только команды,
изменяющие данные
• Крэш может быть вызван ...
Неожиданное поведение
• 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
• Percon...
Место для вопросов
???
33 www.percona.com
Спасибо!
http://www.slideshare.net/SvetaSmirnova
https://twitter.com/svetsmirnova
34 www.percona.com
Upcoming SlideShare
Loading in …5
×

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

867 views

Published on

Slides for my talk @DevConf 2015

Published in: Software
  • Be the first to comment

  • Be the first to like this

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

  1. 1. Мониторинг и отладка MySQL Максимум информации при минимальных потерях Света Смирнова Техническая поддержка MySQL 19 июня 2015 года
  2. 2. Введение: конфликт желаний и возможностей Почему мониторинг - это дорого? Как найти "золотое сечение"? Включаем по требованию для решения конкретной проблемы Итоги 2 www.percona.com
  3. 3. Конфликт желаний и возможностей 3 www.percona.com
  4. 4. Желания • При возникновении проблемы нам нужно как можно больше информации • Во всяком случае достаточно для диагностики конкретного случая • При этом сайт не должен замедлиться ни на наносекунду 4 www.percona.com
  5. 5. Возможности • Почти любой мониторинг - это дорого • Стоит задуматься о • Памяти • Месте на диске • Процессорном времени • Всём сразу 5 www.percona.com
  6. 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. 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. 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. 9. Иллюстрация 1 2 4 8 16 2,000 4,000 6,000 8,000 Threads Events Выключено Включено 9 www.percona.com
  10. 10. Почему мониторинг - это дорого? 10 www.percona.com
  11. 11. Логи требуют дискового пространства • General query log может занять всё свободное место на диске • Что делать в случае нагрузки в 40GB/час только на запись? 11 www.percona.com
  12. 12. Логи требуют дискового пространства • General query log может занять всё свободное место на диске • Что делать в случае нагрузки в 40GB/час только на запись? • Rotate policy • Рекомендации из официального руководства • Rotating MySQL slow logs safely 11 www.percona.com
  13. 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. 14. CPU usage • Performance Schema • Работает за счёт кода, срабатываемого при каждом вызове исследуемой функции • То есть каждый анализируемый участок кода вызывает срабатывание ещё одного вызова • Binary log • В случае использования sync_binlog добавляются дополнительные вызовы fsync 13 www.percona.com
  15. 15. Сеть • MySQL Proxy и другие proxy • Дополнительный слой 14 www.percona.com
  16. 16. Внутренние блокировки • SHOW SLAVE STATUS • SHOW [GLOBAL] STATUS • Производительность замедляется при параллельном использовании • Bug #42930 исправлен в 5.7.0: готовьтесь обновиться! • Information Schema • Binary log 15 www.percona.com
  17. 17. Оптом • Приложения с графическим интерфейсом • Как правило используют те же инструменты • STATUS VARIABLES • MySQL и системные логи • Performance Schema • Имеют те же ограничения 16 www.percona.com
  18. 18. Как найти "золотое сечение"? Нельзя вот так взять и запустить mysqld без диагностики вообще! 17 www.percona.com
  19. 19. Начинаем с минимально неоходимого • MySQL error log • Log files операционной системы 18 www.percona.com
  20. 20. Кое-что можно включать по требованию • General, slow query log файлы • InnoDB Monitors • Consumers в Performance Schema • Performance Schema уже включена и память выделена • Data collection при помощи pt-stalk • Переменные, статусы сервера и InnoDB, processlist • Системная диагностика 19 www.percona.com
  21. 21. Решаем конкретную проблему 20 www.percona.com
  22. 22. Динамически • General query log • Slow query log • InnoDB Monitors • Performance Schema instruments и consumers 21 www.percona.com
  23. 23. Требуется перезапуск • Error log • Binary log • Performance Schema 22 www.percona.com
  24. 24. В зависимости от задачи • Оптимизация • Запросов • Приложения в целом • Блокировки • Крэши • Неожиданное поведение 23 www.percona.com
  25. 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. 26. Оптимизация приложения в целом • InnoDB Monitors • Performance Schema • Сбор данных при необходимости • Запущенные вручную SHOW и SELECT ... FROM INFORMATION_SCHEMA • pt-stalk • PCT • MEM 25 www.percona.com
  27. 27. Блокировки • P_S MDL tables • InnoDB Monitors • innodb_print_all_deadlocks 26 www.percona.com
  28. 28. Крэши • Core dumps • General query log • Binary log • Содержит только команды, изменяющие данные • Крэш может быть вызван и SELECT-ом 27 www.percona.com
  29. 29. Неожиданное поведение • General query log • Binary log • Только для непредвиденных данных в базе 28 www.percona.com
  30. 30. Итоги 29 www.percona.com
  31. 31. Всегда включено • MySQL error log • Системные логи 30 www.percona.com
  32. 32. Включаем по требованию • Performance Schema • InnoDB Monitors • General, slow, binary log 31 www.percona.com
  33. 33. Дополнительная информация • mysqld-option-tables.html • PCT(http://cloud.percona.com/) • MySQL Enterprise Monitor • Percona Toolkit 32 www.percona.com
  34. 34. Место для вопросов ??? 33 www.percona.com
  35. 35. Спасибо! http://www.slideshare.net/SvetaSmirnova https://twitter.com/svetsmirnova 34 www.percona.com

×