Служба підтримки: Як дізнатися, чим насправді займається ваше Web-додаток

  1. Серія контенту:
  2. Цей контент є частиною серії: Служба підтримки
  3. Малюнок 1. Вікно стану
  4. Установка Health Center
  5. Малюнок 2. Майстер підключення Health Center
  6. Налаштування WebSphere Application Server для моніторингу
  7. Малюнок 4. Консоль адміністратора: серверна інфраструктура
  8. Налаштування середовища розробки для моніторингу
  9. Малюнок 7. Запуск Health Center
  10. Малюнок 11. Модернізована додаток Plants By WebSphere
  11. Малюнок 12. Подання Garbage Collection
  12. Малюнок 13. Зведена таблиця по збору сміття оригінального програми
  13. Малюнок 14. Використання можливостей фільтрації для подання Profiling
  14. Малюнок 15. Профіль методу
  15. Малюнок 16. Шляхи виклику Date.toString ()
  16. Малюнок 17. Подання блокувань
  17. Малюнок 18. Подання Environment
  18. Ресурси для скачування

Служба підтримки

Застосування засобів моніторингу та діагностики IBM для Java - Health Center

Серія контенту:

Цей контент є частиною # з серії # статей: Служба підтримки

https://www.ibm.com/developerworks/ru/library/?series_title_by=**auto**

Слідкуйте за виходом нових статей цієї серії.

Цей контент є частиною серії: Служба підтримки

Слідкуйте за виходом нових статей цієї серії.

У кожній колонці "Служби підтримки" обговорюються ресурси, інструменти та інші елементи технічної підтримки IBM® для продуктів WebSphere®, а також нові методи та ідеї, що сприяють накопиченню досвіду в області підтримки продуктів IBM.

Як завжди, почнемо з новин, що представляють інтерес для широкого спільноти WebSphere:

  • Чи готові ви до заходу IMPACT 2010 ? Увійдіть заздалегідь і заощаджуйте на реєстраційних внесків і вартості розміщення в готелі. IMPACT-2010 - це перша конференція для керівників підприємств та ІТ-підрозділів. Приєднуйтесь до нас в Лас-Вегасі з 2 по 7 травня і навчитеся працювати раціональніше у найдосвідченіших в світі керівників підприємств та ІТ-підрозділів.
  • Нові та модернізовані інструменти для IBM Support Assistant: Див. повний список нових діагностичних інструментів для IBM Support Assistant.
  • Ви ще не пробували IBM Support Portal ? Тоді зробіть це зараз, тому що в січні 2010 року сторінки підтримки програмного забезпечення IBM будуть замінені порталом підтримки IBM. Тепер всі продукти IBM Software включені в IBM Support Portal. Подробиці див. В статті Знайомство з Порталом підтримки IBM в "Службі підтримки". Обов'язково дайте нам знати, що ви думаєте, направивши свої коментарі і пропозиції за адресою: [email protected] .
  • Новинка! Тепер можна використовувати Мої повідомлення , Щоб бути в курсі доступних виправлень. Виконайте наступні кроки для оновлення вашої підписки:
    • Натисніть Мої повідомлення, щоб управляти своїми підписками.
    • Виберіть сімейство продуктів (наприклад, WebSphere).
    • Відзначте один або кілька продуктів і натисніть Продовжити.
    • Відзначте Виправлення в розділі "Типи документів" і натисніть Надіслати.
    От і все! Тепер ви будете отримувати повідомлення всякий раз при появі виправлень для обраних продуктів.
  • Глобальне співтовариство користувачів WebSphere.org продовжує рости! Ось дві нові віртуальні групи користувачів, де можна співпрацювати з іншими "Web-сферянамі" з усього світу:
  • Ви користуєтеся продуктами для управління бізнес-процесами (BPM)? Якщо так, то познайомтеся з анонсом BPM V7.0 .
  • У листопаді планується кілька цікавих Web-трансляцій в розділі WebSphere Technical Exchange . Дізнайтеся деталі на сайті і станьте фанатом Facebook !

Продовжуйте відвідувати різні Web-сайти, пов'язані з підтримкою , А також цю колонку, щоб бути в курсі новин про інших інструментах.

А тепер перейдемо до нашої основної теми ...

IBM Monitoring and Diagnostic Tools for Java - Health Center - це нове доповнення до набору діагностичних інструментів Java IBM . Цей інструмент являє собою інтегроване рішення для виявлення і діагностики проблем продуктивності, ємності і стабільності в Java-додатках.

Health Center може контролювати будь-який додаток, що працює на віртуальній машині Java (JVM) IBM, включаючи IBM WebSphere Application Server та інші продукти, що відносяться до WebSphere. Він підтримує повний спектр платформ, включаючи z / OS®, AIX®, Linux® і Windows®.

Health Center збирає повні профілі методів при надзвичайно низьких накладних витратах, виділяючи конфліктуючі блокування, аналізуючи збір сміття і використання "купи", а також відображаючи дії по завантаженню класів. На додаток до цього він контролює параметри командного рядка, які можуть привести до проблем, пов'язаних з нестабільністю або продуктивністю. Health Center забезпечує візуалізацію, аналіз і видає рекомендації у вікні стану (рис. 1), яке містить загальне уявлення результатів роботи Health Center.

Малюнок 1. Вікно стану
Служба підтримки   Застосування засобів моніторингу та діагностики IBM для Java - Health Center   Серія контенту:   Цей контент є частиною # з серії # статей: Служба підтримки   https://www

Якщо для оптимізації продуктивності використовується інфраструктура моніторингу продуктивності (PMI) WebSphere Application Server, то деякі дані (наприклад, про використання "купи") будуть представлені як в PMI, так і в Health Center. Однак існують важливі відмінності, знання яких допоможе вам визначити, в яких випадках використовувати кожен інструмент.

Health Center відрізняється від PMI тим, що він орієнтований на Java і не включає в себе параметри більш високого рівня або параметри, специфічні для Web-додатки, такі як час відгуку HTTP і число запитів сервлету. Замість цього він надає дуже докладну інформацію по Java, значну частину якої взяти більше ніде. Вона включає в себе профілі методів, які надзвичайно корисні при виявленні неефективного коду або зайвих викликів. Health Center виконує також аналіз блокувань для виявлення вузьких місць синхронізації і відображає картину збору сміття, яка може допомогти, коли збір сміття стає причиною уповільнення роботи програми.

Установка Health Center

Для агента Health Center потрібний мінімальний рівень Java 1.5 SR8 або 1.6 SR2. IBM WebSphere Application Server V7.0 поставляється з версією Java, яка підтримує Health Center за замовчуванням; WebSphere Application Server V6.1 потрібно оновлювати за допомогою пакета виправлень SDK принаймні до Java 1.5 SR8.

Перш ніж використовувати Health Center, необхідно побудувати систему моніторингу.

  1. Встановіть агент і клієнт Health Center.
  2. Налаштуйте WebSphere Application Server для моніторингу.
  3. З'єднайте клієнт Health Center з Java-додатком.

Інструмент Health Center складається з двох частин:

  • агента, який, який передає інформацію з контрольованою JVM клієнта;
  • і клієнта, який з'єднується з агентом і відображає інформацію про стан Java-додатка.

Перш ніж додаток можна буде контролювати, на JVM, яку воно використовує, потрібно встановити агент Health Center, і запустити цю програму командним рядком зі спеціальними параметрами. Версії JVM 1.5 SR9, 1.6 SR3 і більш пізні версії поставляються з агентом за замовчуванням. Більш ранні JVM можна оновити за допомогою агента, присутнього в клієнті.

Клієнт Health Center - це інструментальне додаток IBM Support Assistant. Щоб встановити клієнт, дотримуйтесь інструкцій по установці і роботі з інструментами IBM Support Assistant . У відповідь на питання про запускається або встановлюється інструменті виберіть IBM Monitoring and Diagnostic Tools for Java - Health Center.

Коли клієнт встановлений, можна вивантажити агент з цього клієнта і встановити його в JVM, яку потрібно контролювати. Навіть при використанні JVM, яка поставляється з агентом Health Center, щоб отримати останню версію агента, щоб він містив останні оновлення та виправлення. Для цього виберіть посилання Enabling an application for monitoring на першій сторінці майстра підключення (малюнок 2). Довідкова система IBM Support Assistant відкриє сторінку, яка містить посилання на файли агенти Health Center (рис. 3).

Малюнок 2. Майстер підключення Health Center
Малюнок 3. Агенти Health Center

Завантажте агент для своєї платформи і розпакуйте його в кореневий каталог цільової JVM. Наприклад, в типовій середовищі Linux розпакуйте агент в / opt / ibm / WebSphere / AppServer / java.

Налаштування WebSphere Application Server для моніторингу

Для того щоб Health Center контролював WebSphere Application Server і ваші програми, налаштуйте конфігурацію JVM за допомогою консолі адміністратора.

  1. Запустіть консоль адміністратора.
  2. Виберіть Servers => Application Servers.
  3. Виберіть сервер, який потрібно контролювати.
  4. Прокрутіть екран вниз до розділу Sever Infrastructure (рисунок 4).
    Малюнок 4. Консоль адміністратора: серверна інфраструктура
  5. Розгорніть Java and Process Management.
  6. Натисніть на Process Definition.
  7. На знову сторінці перейдіть в розділ Additional Properties і натисніть Java Virtual Machine (малюнок 5).
    Малюнок 5. Консоль адміністратора: Additional Properties
  8. Прокрутіть сторінку вниз до поля аргументів Generic JVM і додайте такі аргументи (рис. 6): -agentlib: healthcenter -Xtrace: output = perfmon.% P.out
    Малюнок 6. Додавання аргументів на поле JVM Arguments
  9. Збережіть налаштування і перезавантажте сервер додатків.

Агент Health Center спробує прослухати порт 1972 і автоматично збільшить номер, якщо цей порт вже використовується. При наявності брандмауера між клієнтом і агентом Health Center переконайтеся, що прослуховується агентом порт відкритий.

Налаштування середовища розробки для моніторингу

Після установки агента Health Center і оновлення конфігурації WebSphere Application Server можна приступати до моніторингу. Для моніторингу програму, виконайте такі дії.

  1. Запустіть робоче середовище IBM Support Assistant.
  2. На головній сторінці виберіть вкладку Analyze Problem.
  3. Виберіть з каталогу інструментів IBM Monitoring and Diagnostic Tools for Java - Health Center і натисніть кнопку Launch (малюнок 7).
    Малюнок 7. Запуск Health Center
  4. Відкриється Connection Wizard (рисунок 8). Натисніть Next.
    Малюнок 8. Connection Wizard
  5. На панелі JVM Connection Details (рисунок 9) вкажіть ім'я хоста, до якого потрібно підключитися, і прийміть номер порту за замовчуванням. Натисніть Next, щоб почати пошук портів, що прослуховуються агентами Health Center. За замовчуванням система починає пошук з порту 1972 і сканує наступні 100 портів, щоб виявити всі прослуховуючі агенти. Якщо порт потрібного агента вже відомий, можна ввести цей номер і зняти прапорець Scan next 100 ports for available connections. Якщо між клієнтом і агентами встановлений міжмережевий екран, не забудьте відкрити необхідні порти.
    Малюнок 9. Детальна інформація про з'єднаннях JVM
  6. Коли пошук завершиться, в останньому вікні майстра будуть показані доступні з'єднання агентів (рисунок 10). Виберіть порт зі списку і натисніть Finish.
    Малюнок 10. Заключний екран майстра підключення

Що насправді робить WebSphere-додаток?

Тепер можна побачити, що робить ваш додаток і як його можна оптимізувати, щоб це робилося швидше.

Щоб продемонструвати, як використовувати Health Center для вирішення цих завдань, розглянемо приклад Web-додатки Plants By WebSphere. Простежимо, як невелика зміна в додатку може мати значний вплив на продуктивність.

Зміна, внесена в додаток Plants By WebSphere, складалося в додаванні елемента динамічного контенту на Web-сторінку; зокрема, до імені кожного з рослин, які відображаються на сторінці, був доданий поточний рік. У підтримуючої базі даних ніяких змін внесено не було, - тільки в код, який повертає ім'я: Inventory.getName (). Потім поточний рік перетворюється в об'єкт типу Date, форматується як рядок і аналізується за допомогою регулярного виразу. Результат цих змін показаний на малюнку 11.

Малюнок 11. Модернізована додаток Plants By WebSphere

Тепер скористаємося Health Center, щоб побачити вплив цих змін.

  • Як зміни вплинули на збір сміття?

    Який вплив цих змін на продуктивність? Щоб дізнатися це, перш за все потрібно перевірити збір сміття. На представленні Garbage Collection Health Center демонструє графіки операцій зі збору сміття, статистику GC і рекомендації (рисунок 12).

    Малюнок 12. Подання Garbage Collection

    З графіків на малюнку 12 випливає, що паузи GC не дуже тривалі, але, здається, спостерігається деякий надлишок діяльності GK. У цьому можна переконатися, дивлячись на резюме, яке показує, що 6,2% часу додаток витрачає на збір сміття. Хоча 6,2% накладних витрат на GC - не так вже й багато, це значно більше, ніж 2,6%, демонстровані вихідним додатком (рис. 13). Інтенсивність створення сміття також в шість разів вище, так що новий додаток виробляє набагато більше сміття.

    Малюнок 13. Зведена таблиця по збору сміття оригінального програми
  • Як зміна впливає на ефективність виконання?

    Тепер перевіримо частку споживаних ресурсів процесора з використанням об'єкта Date. Чи ефективно він працює? Відповісти на це питання допоможе уявлення Profiling Health Center. Іноді в профілі може домінувати код сервера додатків WebSphere, і тоді важко знайти код свого застосування. Щоб побачити тільки свій код, можна скористатися можливостями фільтрації (рисунок 14). Використовуємо регулярні вирази для ускладненою фільтрації (в початок і кінець рядка фільтра завжди додається зірочка (*), тому немає необхідності вводити шаблони для простих рядків). У цьому прикладі в якості фільтра використовується plant, так що профілюються тільки методи Plants By WebSphere.

    Малюнок 14. Використання можливостей фільтрації для подання Profiling

    Подання Profiling Health Center дає профіль методів, зібраний шляхом регулярної вибірки з виконуваного коду. В даному випадку (рисунок 15) стовпець Self (%) показує, що 3,2% процесорного часу витрачається на Date.ToString (). Стобец Tree (%) показує загальну кількість процесорного часу (40.6%), що витрачається на Date.ToString () і всі методи, які викликає ця функція. Date.toString () несе відповідальність більш ніж за 40% процесорного часу, використовуваного додатком.

    Малюнок 15. Профіль методу

    Подання шляхів виклику (рисунок 16) показує, який код викликає Date.ToString (). В даному випадку 100% викликів приходять з зміненого методу Inventory.GetName ().

    Малюнок 16. Шляхи виклику Date.toString ()

    Очевидно, що форматування дат у вигляді рядка накладно. Якби тут потрібно було підвищити продуктивність, можна було б кешувати рядки замість їх відтворення для кожного елемента каталогу. Профіль (рисунок 15) показує також, що досить багато часу витрачається на обробку регулярних виразів, так що варто було б також кешувати результатів розбору. Ще краще використовувати метод вироблення дати, що виключає створення додаткових рядків і зіставлення регулярних виразів, такий як Calendar.get (Calendar.YEAR).

  • Синхронізація?

    Зміна коду в цьому прикладі не пов'язано ні з якою синхронізацією, так що немає ніяких проблем з поведінкою блокувань додатки. Тому малоймовірно, що в даному прикладі синхронізація вплине на продуктивність (рис. 17).

    Малюнок 17. Подання блокувань
  • З якою конфігурацією працює додаток?

    Подання Health Center Environment (рисунок 18) показує конфігурацію Java, властивості системи і змінні середовища контрольованого процесу. Це може бути корисно для перевірки, чи та JVM контролюється і з тими чи конфігураціями працюють додатки WebSphere.

    Малюнок 18. Подання Environment

висновок

Інструментарій моніторингу та діагностичних IBM для Java - Health Center дозволяє постійно контролювати продуктивність і поведінку сервера додатків WebSphere Application без значних накладних витрат. Він допомагає легко і наочно визначати і діагностувати проблеми продуктивності, конфігурації і синхронізації.

Ресурси для скачування

Схожі теми

Підпишіть мене на повідомлення до коментарів

Com/developerworks/ru/library/?
Як зміни вплинули на збір сміття?
Який вплив цих змін на продуктивність?
Чи ефективно він працює?
Синхронізація?