Mysql
 sql >> база данни >  >> RDS >> Mysql

Мониторинг на производителността на MySQL с ClusterControl

Наблюдението на производителността на MySQL бази данни е ежедневна задача на почти всеки MySQL DBA. В тази публикация в блога ще се опитаме да демонстрираме как да наблюдавате производителността на вашите MySQL бази данни - с ClusterControl.

Какво трябва да наблюдавате?

Като цяло, ако наблюдавате производителността на MySQL, вероятно трябва да помислите за наблюдение на следните неща:

  • Управление на заявки - наблюдението на производителността на вашите заявки може да се окаже един от най-ефективните начини за подобряване на производителността на MySQL.
  • Откриване на извънредни заявки - историческите данни могат да ни кажат много:могат дори да се използват за изчисляване на очакваната ефективност на заявката въз основа на исторически данни, след което да се сравнява текущата ефективност на заявката с очакваната ефективност, за да се открият отклонения от заявката.
  • Ефективност на схемата на базата данни - ClusterControl може да ви помогне да оптимизирате производителността на вашите MySQL екземпляри, като предоставя информация за схемата, за да гарантира, че схемите ви са оптимизирани за вашето работно натоварване.
  • Балансиране на натоварването - Балансьорите на натоварване като ProxySQL, HAProxy или MaxScale могат да направят вашата база данни да работи възможно най-добре. Тези балансатори на натоварване могат лесно да бъдат разгърнати с помощта на ClusterControl.

Балансиране на натоварването на базата данни и управление на заявки с помощта на ClusterControl

ClusterControl поддържа следните балансиращи натоварването:

  • HAProxy
  • MariaDB MaxScale
  • ProxySQL
  • Keepalived (само виртуален IP адрес)

Обърнете внимание, че ClusterControl трябва да се намира на независим възел, отделно от вашия клъстер на база данни.

По отношение на управлението на заявките, ClusterControl ви позволява да усвоите следното (вие можете да видите тези неща, след като превключите към раздела Монитор на заявки):

  • Можете да видите най-популярните бавни и продължителни заявки.
  • Можете да видите списък с текущо изпълнявани заявки.
  • Можете да видите списък с отклонения на заявката.

Този раздел ви предоставя обобщен списък с всичките ви най-популярни заявки, изпълнявани на всички възли на вашия клъстер от база данни. ClusterControl получава информацията по един от следните два начина:

  1. Заявките се извличат от PERFORMANCE_SCHEMA или
  2. Ако PERFORMANCE_SCHEMA е деактивирана или недостъпна, ClusterControl ще анализира съдържанието на дневника на бавните заявки.

Ако се използва дневникът на бавните заявки, тук ще бъдат изброени само заявки, които надвишават дългото време на заявка.

Дългото време на заявка събира заявки, чието изпълнение отнема повече от секунди дълго време на заявка (например, ако дългото време на заявка е 0,1 ще се регистрират само заявки, които отнемат повече от 0,1 секунди за изпълнение), „ регистрационните заявки, които не използват индекси?" конфигурира поведението на ClusterControl по отношение на заявки без индекси и т.н.

Горната таблица със заявки се обновява автоматично на всеки 30 секунди (честотата на опресняване може да се променя). Колоните на таблицата с най-добри заявки съдържат списък с извадки от заявки, имена на бази данни, общия брой на заявките, броя на редовете, участващи в операциите, броя на временните таблици, създадени за определена заявка и т.н. - списъкът на обобщените най-добри заявки може също да бъде подредено по Възникване или Време на изпълнение, за да се покажат най-често срещаните или най-бавните заявки.

ClusterControl също ви позволява да видите списък с текущо изпълнявани заявки. Тази страница също се обновява автоматично на всеки 30 секунди и показва:

  • Сървърът MySQL, от който се извлича процесът.
  • Идентификаторът на връзката.
  • Името на базата данни.
  • Потребителят на MySQL, който е издал изявлението.
  • Времето за изпълнение на MySQL нишката в секунди.
  • Името на хоста на клиента, издаващ изявлението.
  • Типът на командата, която нишката изпълнява.
  • Състоянието на нишката (както е обяснено в документацията на MySQL)

Страницата с отклонения на заявката показва заявки, които се считат за „отклонения“. С други думи, тази страница показва всички заявки, които отнемат повече време за изпълнение от нормална заявка от този тип, като по-дълго се дефинира като отклонение на латентността от 2 сигми + средно_време_на_заявка. Тази страница показва:

  • Точният час, когато заявката е била заснета.
  • Самата заявка.
  • Времето, необходимо за изпълнение на SQL заявката.
  • Средното време за изпълнение на SQL заявката.
  • Времето за изпълнение на стандартното отклонение (микросекунди).
  • Максималното време за изпълнение на заявката (микросекунди).
  • Времето за заключване на заявката (микросекунди).

Разделът за наблюдение на заявки предоставя обобщение на обработката на заявки във всички възли в клъстер.

Резюме

Когато става въпрос за наблюдение на производителността на вашите MySQL бази данни, ClusterControl може да направи чудеса. ClusterControl може да улесни разгръщането на балансьори на натоварване, може да ви помогне лесно да управлявате заявките си и да наблюдавате тяхната производителност, ClusterControl може също да изчисли очакваната ефективност на заявката въз основа на исторически данни.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да преброите всички редове, когато използвате SELECT с LIMIT в MySQL заявка?

  2. Как най-добре да получите нечий „ранг“ от таблица с резултати с php и mysql без цикъл

  3. Не може да върне резултати от съхранената процедура с помощта на курсора на Python

  4. JSON_QUOTE() – Как да избягвате символи в низове, използвани като JSON стойности в MySQL

  5. MySQL в облака – онлайн миграция от Amazon RDS към EC2 екземпляр:Част първа