Mysql administrator
Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.
MySQL Administrator можна використовувати на будь-якій платформі та звертатися до одного або кількох серверів, підключених до клієнта. Це полегшує моніторинг кількох серверів через мережу.
Унікальна функція MySQL Administrator дозволяє аналізувати вимкнений сервер. Хоча більшість функцій відключено (тобто немає індикаторів продуктивності, які працюють в реальному часі), все одно можна переглядати конфігурацію та перевіряти журнали. Це може бути дуже корисним для діагностування збоїв сервера.
Щоб підключитися до вимкненого сервера (це називається режимом налаштування та обслуговування), запустіть MySQL Administrator та натисніть клавішу Ctrl (або клавішу Apple у Mac OS X). Зверніть увагу, що кнопка Connect перетворилася на кнопку Skip. Натисніть кнопку Skip і утиліта переключиться в режим налаштування та обслуговування. Тепер можна запускати та зупиняти сервер, змінювати змінні завантаження та переглядати журнали.
Функції MySQL Administrator розділені на 10 груп або утиліт, кожна з яких представлена вкладками програми. Нам цікаві утиліти, що показують значення змінних станів. MySQL Administrator має динамічну функцію, аналогічну утиліті mysqladmin, але розширює її можливості, показуючи графік значень. Ці утиліти згруповані на вкладці Health. Якщо клацнути на ярлику вкладки Connection Health, буде показаний графік, аналогічний показаним на рис. 8-2, 8-3 та 8-4.

Мал. 8-2. Вкладка Connection Health (Mac OS X)
Цей графік має три секції. У першій наведено дані про використання підключення (кілька підключень встановлено на сервері в даний момент). Це може бути дужекорисним, коли потрібно визначити, чи не перевантажено сервер (занадто багато підключень), або коли потрібно вирішити поодинокі проблеми з підключеннями.
Знімки екрана представлені на рис. 8-2, 8-3 та 8-4 отримані на системах Mac OS X,
Windows 7 та Linux. Як бачите, зовнішній вигляд програми трохи відрізняється на кожній платформі. У Mac OS X різниться розташування меню, але в іншому набір функцій той самий.
На графіку Traffic (рис. 8-2) показано мережевий трафік. Це може бути корисним для визначення потенційних проблем з мережею.
Найбільш цікавим є нижній графік, що показує запити SQL, виконані в деякий проміжок часу. Це може бути дуже корисним, коли потрібно визначити, чи система не перевантажена запитами.
За малюнками з прикладів можна зрозуміти, що система працює з дуже невеликою кількістю підключень, мінімальним мережевим трафіком і середнім навантаженням запитами, що виявляється сплесками.
Графічне уявлення змінних станів - одна з найкращих можливостей MySQL Administrator. Хоча самі змінні стани на графіках не видно, а відображаються лише максимальні та мінімальні значення за певний період, це може бути дуже корисним для візуального визначення потенційних проблем.
Довге використання подібних утиліт може додати невелике навантаження і трохи спотворити результати. Однак це не буде проблемою для системи, яка виконує велику кількість операцій.
На рис. 8-3 показано систему, яка практично не використовується. Ми додали цей малюнок, щоб показати, як виглядає вікно MySQL Administrator на платформі Windows. Крім того, цей приклад важливо розглянути з погляду реплікації. Якщо підлеглий сервер демонструє таку поведінку, то, безперечно, виниклиякісь серйозні проблеми. Також це може вказувати на те, що схема масштабування не працює так, як повинна або стратегія балансування навантаження не спрацювала, і запити не передаються на цей сервер.
На рис. 8-4 показаний інтерфейс MySQL Administrator у системі Linux. Це ще один приклад системи з помірним навантаженням. Зверніть увагу на те, що для використання з'єднання та мережного трафіку є індикатори, що показують відсоток завантаженості. Це дозволяє швидко оцінювати рівень навантаження.
На вкладці Memory Health показані динамічні графіки стану кешу запитів та кешу ключів. На рис. 8-5 показаний приклад графічних звітів для системи з помірним навантаженням. У цьому випадку система виконує додаткові діагностичні тести MySQL Cluster.

Мал. 8-3. Вкладка Connection Health (Windows 7)

Мал. 8-4. Вкладка Connection Health (Linux)

Мал. 8-5. Вкладка Memory Health
Порівняно із запитами змінних стану кеша запитів, що виконуються вручну, тут набагато простіше стежити за загальним рівнем продуктивності кешу запитів. Цей графік, як і деякі інші динамічні графіки, має індикатор піків, що допомагає стежити за раптовими стрибками значень.
Принцип невизначеності в MySQL
Можливо, ви знайомі з принципом невизначеності Гейзенберга, який свідчить, що чим точніше визначені координати частки, тим менш точний її імпульс і навпаки. Моніторинг MySQL включає виконання запитів для отримання значень змінних станів, тому щоразу, коли ви збираєте дані, ви збільшуєте значення деяких змінних, за якими спостерігаєте. Таким чином, моніторинг додає додаткове навантаження, і надто активний вимір можезробити вимірювані значення менш цінними. Звичайно, цей принцип застосовується до будь-яких вимірів даних.
Плануючи частоту отримання статистики, слід враховувати, що частий замір значень може призвести до того, що система витратить більше ресурсів на виміри, ніж саму обробку даних. У першому графіку показано лише частота успішних звернень до кешу запитів. Тут представлені самі значення, що повертаються змінної стану Qcache_hits, яка є лічильником успішних витягів результатів запитів з кешу. Зрозуміло, що вищі ці значення, краще продуктивність, але зворотне твердження необов'язково правильно. Низька частота влучень свідчить, що сервер не використовує кеш запитів, а чи не у тому, що він погано функціонує. Однак, якщо ваша мета - підвищити продуктивність, використовуючи стандартизовані запити, а ви бачите низьку частоту влучень, це може вказувати на те, що потрібно налаштувати кеш запитів, або що якісь події роблять дані з кешу недійсними.
Значення Qcache_hits монотонно зростає і його необхідно періодично скидати, щоб оцінювати періоди активності. Для створення графіка Query Cache Hitrate (рис. 8-5) MySQL Administrator виконує команду FLUSH STATUS, щоб скинути значення на 0 між зверненнями за даними для поточного сеансу. Це звичайний прийом більшості засобів моніторингу, виконують вибірку даних.
Графік Key Efficiency (Рис. 8-5) динамічно відображає інформацію про використання буфера ключів. Точніше, це кеш ключів MyISAM, і на графіку показано, як часто використовується кеш ключів чи скільки запитів виконано звернення до цього кешу. Тут використовується змінна стан key_read_requestst.
За допомогою цього графіка можна визначати,коли слід збільшити змінну key_cache_size для забезпечення кращої продуктивності. Тобто якщо відображаються високі значення (великий відсоток), можна збільшити значення. Загалом, що вище значення, то ефективнішим стає кеш. І навпаки, якщо ви бачите низькі значення, коли багато запитів до таблиць MyISAM, можна зменшити розмір кешу ключів.
Інші вкладки представляють традиційні числові дані. Перед тим, як ми розглянемо ці вкладки, слід відзначити можливість створення власних графіків стану. Щоб додати такий графік, клацніть правою кнопкою миші в порожньому місці робочої області, виберіть New page і введіть назву сторінки. Ця назва з'явиться на панелі вкладок. Відкрийте нову сторінку, клацніть правою кнопкою миші на порожній формі та виберіть команду New group, щоб дати ім'я групі. Після цього можна клацнути правою кнопкою миші у створеній групі та додати новий графік. На рис. 8-6 показано діалогове вікно створення графіка.
Тут можна вказати змінні стани, за якими ви хочете спостерігати, обчислення, які потрібно виконувати, та спосіб представлення даних. Спробуйте це зробити самостійно. Зверніть увагу на рис. 8-6 обрано лінійний графік (Line Graph), а перед ім'ям змінної, укладеним у дужки, стоїть знак Л . У діалоговому вікні даються підказки про те, як ввести формулу, якщо хочете отримати складніший звіт.

Мал. 8-6. Діалогове вікно для створення настроюваного графіка При необхідності можна також вказати одиниці вимірювання значення, підпис, мінімальне та максимальне значення. Якщо вказати ім'я значення підпису, з'явиться невеликий піковий індикатор, наявний на інших графіках. Приклад створеного користувачем графікапоказано на рис. 8-7.

Мал. 8-7. Графік користувача Можна клацнути правою кнопкою миші на будь-якому зі стандартних графіків, і змінити його. Цю можливість можна використовувати, щоб переглянути, як обчислюються значення для графіків.
Як уже говорилося, разом із інформацією про стан можна переглядати змінні сервери. Клацніть на ярлику вкладки Server Variables,

Мал. 8-8. Вікно Server Variables
Однією з найкорисніших можливостей цього інструменту є те, що динамічно можна змінювати значення. Наприклад, якщо потрібно збільшити час, протягом якого система рахує повільні потоки, просто клацніть на значенні змінної slow_launch_time і введіть нове значення. Змінені значення автоматично оновлюються на сервері. Це дуже корисна можливість, завдяки якій використовувати MySQL Administrator набагато зручніше, ніж вікно клієнта.
Визначити, які змінні можуть бути змінені (не доступні тільки для читання), можна по невеликому значку у вигляді олівця поряд з ім'ям. Якщо немає піктограми, змінна доступна лише для читання.
Коли ви об'єднуєте можливість вилучати дані та швидко змінювати системні змінні з можливістю переглядати зміни в системі на динамічних графіках, ви використовуєте MySQL Administrator як професійний інструмент налаштування продуктивності. Але не забувайте золоте правило налаштування: змінюйте лише один параметр за один раз і спостерігайте за результатом.

Мал. 8-9. Вікно Status Variables
Як і змінні сервера, всі змінні стану системи можна переглядати. Відображаються значення, отримані під час вибору групи змінних. Автоматично вони не оновлюються. Щоб отримати новізначення, клацніть на кнопці Refresh. На відміну від динамічних графіків стану, під час оновлення виходять значення у вигляді, як вони зчитані з сервера з допомогою команди SHOW STATUS.
Пам'ятайте про це, використовуючи цю утиліту: вона показує лише статичні одномоментні значення, а не тенденції та списки історії.
Для кожної змінної стану є короткий опис. Це може бути дуже корисно визначення того, за якими змінними потрібно спостерігати при вирішенні проблем з продуктивністю. Це дозволяє заощадити багато часу порівняно з виконанням команд SHOW STATUS та спробами вгадати, яке ключове слово потрібно використовувати (див. мал. 8-5).
Наступний інструмент, який ми розглянемо, дає змогу переглядати миттєві знімки журналів сервера. Про журнали сервера розповідається далі в цьому розділі, тому тут наведемо лише коротке уявлення.
У журнали сервера записуються значні події, що сталися під час роботи системи. Ця інформація може містити помилки операцій або підключень, виконані на сервері запити і навіть вказівки на те, які запити виконуються найповільніше.
Ці журнали можна переглядати за допомогою MySQL Administrator. Хоча доступ надається лише до журналу помилок, загального журналу та журналу повільних операцій, це все одно дуже корисно.

Мал. 8-10. Вікно Logs
У верхній частині вікна знаходиться повзунок Page, який можна перетягувати для переходу сторінками журналу.

Мал. 8-11. MySQL Query Browser
Нижче наведено два поля, в яких перелічені значні події з журналу (ліворуч) та відомості про обрану подію (праворуч).
Ми розглянули засоби MySQL Administrator, що дозволяють виконувати докладнудіагностику, моніторинг продуктивності та налаштування. Сподіваємося, ви використовуватимете їх, коли перейдете до практики на власних серверах. MySQL Administrator позбавляє рутинної роботи із запуску команд SQL для отримання одних і тих же даних. Нові можливості, такі як графіки станів, що налаштовуються, значно полегшують налаштування продуктивності.