Статьи

Моніторинг швидкості запуску систем в середовищі Windows 7

  1. Новий журнал подій - підмога в діагностиці
  2. Робота з Event Viewer в системі Windows 7
  3. Отримання даних за допомогою Wevtutil
  4. Підведемо підсумки
  5. Що з цього випливає

Нещодавно кілька клієнтів Microsoft звернулися в службу підтримки корпорації з проханням допомогти в діагностиці проблем, що викликають зниження продуктивності в процесі завантаження і реєстрації користувачів в настільних системах або ноутбуках. Труднощі, що виникають при завантаженні і запуску систем, легко усуваються за допомогою набору інструментів Windows Performance Toolkit (xbootmgr.exe). А що ж робити адміністраторам підприємств, де експлуатуються тисячі настільних систем? Вони повинні мати можливість ідентифікувати несправні системи ще до того, як користувач повідомить про них в службу підтримки. При цьому показники часу запуску настільних систем необхідно відстежувати в динаміці за часом і по всьому підприємству. Крім того, потрібна можливість отримання показників часу завантаження (аналогічних тим, що відображаються програмою xbootmgr.exe) для кожної системи. Далі в статті я розповім про те, як можна вирішити ці завдання за допомогою журналу подій, нової оснастки Windows 7 Event Viewer і утиліти Wevtutil.

Новий журнал подій - підмога в діагностиці

Починаючи з версії Windows Vista система Windows включає в себе нову категорію журналів подій - журнали додатків і журнали служб. Базова інфраструктура реєстрації подій тепер узгоджується зі схемою XML. Користувач може легко отримати XML-дані по будь-якої події. Інтерфейс нового журналу подій дозволяє створювати на базі XML запити до журналів подій. Оснащення Event Viewer дає можливість звертатися до нових можливостей XML за допомогою простого у використанні графічного інтерфейсу.

Один з журналів нової категорії - журнал Diagnostics-Performance / Operational log. У ньому відбиваються події, здатні фіксувати показники продуктивності, подібні до тих, що відображаються програмою xbootmgr.exe. По суті, записуються дані генеруються тими ж механізмами, які використовує утиліта Xbootmgr. Події з ідентифікаторами від 100 до 110 фіксують статистику продуктивності в ході завантаження і запуску.

Робота з Event Viewer в системі Windows 7

Реалізована в Windows 7 нова оснащення Event Viewer дає можливість застосовувати більш потужні фільтри. Новий користувальницький інтерфейс дозволяє задавати діапазони подій. Під його прикриттям програма формує запит XPath з метою фільтрації подій на основі заданих критеріїв. У нашому прикладі ми будемо фільтрувати події з ідентифікаторами від 100 до 110 включно. Подія з ідентифікатором 100 цікавить нас тому, що дає можливість отримати дані по швидкості завантаження. На екрані 1 відображено XML-представлення для події 100.

XML-представлення даної події містить масу цікавої інформації. Значення BootTime представляє число мілісекунд, що минули з часу завантаження системи до того моменту, як користувач зареєструвався в ній і система була в стані 80-процентного бездіяльності протягом 10 секунд. Інші значення часу, що містяться в XML-представлення, вказують на час, що витрачається на виконання різних стадій згаданого процесу завантаження. Більш докладні відомості про стадіях процесу завантаження можна знайти в керівництві Windows On / Off Transition Performance Analysis ( www.microsoft.com/whdc/system/sysperf/On-Off_Transition.mspx ).

Інші події завантаження фіксують інформацію про конкретних ситуаціях, що викликають затримки при виконанні послідовності операцій завантаження / запуск. Важливо тільки визначитися з тим, до якого екземпляру завантаження відносяться ці повідомлення. Ось тут-то і може стати в нагоді параметр ActivityID. На екрані 1 в розділі даних XML ви побачите рядок:

Саме такий ідентифікатор ActivityID мають всі події, пов'язані з Вашим примірнику завантаження в цьому записі Event 100. Виконавши такі дії, ми зможете використовувати зазначену інформацію для створення більш складного фільтра:

1. На панелі Actions оснащення Event Viewer клацніть на елементі Filter Current Log.
2. На вкладці XML виставте прапорець Edit query manually. Коли програма запропонує продовжити процедуру, дайте відповідь Yes.
3. В поле запиту введіть наведений нижче текст на мові XML.

4. Натисніть ОК.

По завершенні редагування запиту програма відобразить три події для даного ідентифікатора ActivityID. Тепер ми можемо досліджувати ці події, щоб зрозуміти, які проблеми сприяли виникненню затримок в процесі завантаження / запуску.

Отримання даних за допомогою Wevtutil

Поки що ми розглядали тільки один екземпляр завантаження. А як отримувати дані для всіх примірників завантаження? Для цього використовується Wevtutil, реалізоване в Windows інструментальне засіб командного рядка, призначене для формування запитів до журналів подій. Наступний приклад показує, як з журналу подій системи витягуються всі записи Event ID 100:

wevtutil qe Microsoft-Windows- Diagnostics-Performance / Operational / rd: true / f: xml / q: "* [System [(EventID = 100)]]" / e: Events> boot.xml

При виконанні даного фрагмента коду формується файл даних XML, що містить всі екземпляри події «швидкодію завантаження» для тієї чи іншої системи. За допомогою кожного ідентифікатора ActivityID ви зможете формувати запити по всіх інших подібних подій. Так, наступний запит витягує ті ж три записи подій, які відображаються після додаткової фільтрації запиту:

wevtutil qe Microsoft-Windows- Diagnostics-Performance / Operational / rd: true / f: xml / q: "* [System [(Correlation [@ ActivityID = '{00000001-0000-0000- 1020-5CA87BB1CA01}'])]] "/ e: Events> bootrelated.xml

Wevtutil.exe передбачає використання великого числа параметрів. Щоб побачити весь список можливостей, що відкриваються, запустіть утиліту без зазначення будь-яких параметрів. Додаткову інформацію можна знайти в статті MSDN «Event Queries and Event XML», опублікованій в Інтернеті за адресою msdn.microsoft.com/en-us/library/bb399427.aspx . Більш докладні відомості, необхідні для вивчення набору правил XPath з метою формування запитів до подій, наведені в документі XPath Syntax, опублікованому за адресою go.microsoft.com/fwlink/?LinkId=94637 , А також в прикладах XPath Examples за адресою microsoft.com/fwlink/?LinkId=94638 .

Підведемо підсумки

Після того як дані перетворені в формат XML, отримання найцікавіших приватних значень не складає труднощів. На екрані 2 представлені деякі дані, отримані мною з однієї із систем. В даному прикладі я перетворив значення часу в секунди. При дослідженні змін в робочих характеристиках відмінності в числі додатків, які стартують в момент завантаження, можуть бути істотними. Маючи в своєму розпорядженні подібними даними за минулий період, ви можете приступати до аналізу трендів. Так, дана система була створена 13 січня 2010 року. Операції по установці додатків і внесення змін в конфігурацію тривали ще пару днів. К 21 січня 2010 року настройка системи була завершена. Після цього значення BootTime становило в середньому близько 124 секунд. Однак варто зазначити, що 4 лютого, а також 9 лютого 2010 року на завантаження системи було витрачено набагато більше часу.

Що з цього випливає

Отже, ми маємо в своєму розпорядженні механізмом для автоматичного отримання даних про події в форматі XML, і перед нами відкривається можливість збирати такі дані періодично з декількох комп'ютерів, а також зберігати отримані результати в базі даних. За допомогою простих методів підготовки звітів ми можемо з легкістю виконувати аналіз трендів. Для створення повного рішення рівня підприємства буде потрібно підготовка додаткового коду і засобів управління даними, але це завдання нескладне. Саме так і вчинили в організації, яка є одним з основних моїх клієнтів.

За допомогою написаної мною програми на мові VBScript співробітники цієї компанії зводять інформацію про події в базу даних SQL Server. Вони використовували ці дані з метою отримання вихідної статистики для формування образів своїх настільних систем. Вони можуть маніпулювати цією інформацією на основі таких критеріїв, як апаратні компоненти (наприклад, пам'ять, процесор, модель) і налаштування програмного забезпечення. За допомогою служби звітів SQL Server фахівці цієї організації створили виставу «панель датчиків», де відображається стан працездатності всіх настільних систем підприємства. На основі окремих звітів вони можуть зіставляти базовий рівень швидкодії з новими даними, отриманими після розгортання нових групових політик і засобів безпеки або після поновлення апаратних компонентів. Крім того, вони використовують ці дані для проактивного виявлення систем, час завантаження яких більше середньостатистичного. Згадані відомості дозволяють співробітникам ІТ-підрозділу братися за усунення неполадок ще до того, як користувачі звертаються в службу підтримки. В результаті час вирішення проблем скорочується, і користувачі можуть спокійно займатися своєю справою.

Шон Уілер ( [email protected] ) - старший інженер з експлуатації підрозділу Microsoft Premier Support. Спеціалізується на написанні сценаріїв, налагодженні коду і вирішенні проблем, пов'язаних з продуктивністю систем

А що ж робити адміністраторам підприємств, де експлуатуються тисячі настільних систем?
А як отримувати дані для всіх примірників завантаження?
Com/fwlink/?
Com/fwlink/?

Новости