Когато компютър или приложение започне да заеква, обикновено виновен е процесорът. овенът или дори към мрежата, но без надеждни данни е много лесно да се допусне грешка в диагнозата. Windows Performance Recorder (WPR) и Windows Performance Analyzer (WPA) ви позволяват да заснемете и визуализирате с много подробности какво се случва в системата точно по време на тези пикови натоварвания или спадове на производителността.
WPR и WPA далеч не са инструменти само за гурута, а могат да се впишат идеално в ежедневието както на разработчици, администратори, така и на напреднали потребители. В комбинация с други помощни програми като Visual Studio, Application Insights, PerfViewскриптове като PerfCollect или дори самия диспечера на задачитеТова предоставя много мощен арсенал за локализиране на пречки, свързани с процесора, паметта, диска, графичния процесор, мрежата или външни зависимости.
Какво е Windows Performance Recorder и как се вписва в диагностичната екосистема?
Windows Performance Recorder е част от Windows Performance Toolkit (WPT)WPT, набор от инструменти на Microsoft, предназначени за улавяне и анализ на производителността на ниво операционна система. WPT включва два основни компонента:
- WPR. Той е отговорен за записването на следата от събитията.
- WPA. Графичният интерфейс, където тази следа се отваря и изучава.
WPR е базиран на инфраструктурата на Проследяване на събития за Windows (ETW), системата за регистриране на ниво ядро, интегрирана в Windows. Всяка сесия на запис се запазва във файл с разширение . .etl (Регистрационен файл за проследяване на събития), който по-късно ще отворим с WPA, за да изучаваме поведението на системата и приложенията с огромна детайлност.
За да контролира какво се регистрира, WPR използва профилни файлове с разширение . .wprp. Тези профили определят набора от доставчици и събития, честотата на семплиране, нивото на детайлност и др. Благодарение на тези профили, заснемането може да бъде адаптирано към специфични сценарии.
От своя страна, Анализатор на производителността на Windows Това е графичният инструмент, който ви позволява да отваряте .etl файлове. и да изследвате информация като графики на времето, йерархични таблици, корелирани времеви линии и специфични изгледи за процесор, памет, входно/изходни операции, мрежа и много други подсистеми. WPA е много гъвкав. Той ви позволява да сортирате данни по различни полета, да увеличавате и намалявате мащаба във времето и да групирате по нишки, процеси, модули, стекове на повиквания и други.

Ключови понятия и терминология преди записване на тракове
Преди да започнете да записвате тракове, е добре да усвоите поредица от основни термини, които постоянно ще виждате в документацията и в самите инструменти. Познаването на този жаргон ви позволява да интерпретирате по-добре резултатите и да не се изгубите сред акронимите..
Първият ключов термин е ETW (Проследяване на събития за Windows). Това е механизъм за проследяване на събития на ниво ядро, вграден в Windows. Благодарение на ETW, както системното ядро, така и много приложения и компоненти могат ефективно и с минимално въздействие да генерират събития.
Когато тези събития се записват на диск, те се съхраняват във файл дневник за проследяване на събития с разширение .etlВсеки път, когато извършвате проследяване с WPR, типичният резултат е файл от този тип, който след това можем да анализираме с WPA или други съвместими инструменти, като например PerfView.
Самото приложение, което стартира и спира записа, се нарича WPR (Запис на производителността на Windows)Този рекордер приема един или повече .wprp профили като вход, които определят кои събития ще бъдат записани и с каква конфигурация. Обичайна практика е да се избират предварително дефинирани профили за процесор, входно/изходни операции, графика или общо използване на системата.
На последно място, WPA (Анализатор на производителността на Windows) Това е графичният интерфейс, който отваря .etl файлове и ви позволява да навигирате, сортирате, филтрирате и съпоставяте данните. От WPA можете да се задълбочите в това кои нишки натоварват процесора, кои процеси генерират най-много дискови входно-изходни операции, кои външни зависимости причиняват латентност или как времето се разпределя между различните операции в дадено приложение.
Използване на WPR и WPA за откриване на затруднения в процесора и системата
В индустриални среди, backend среди или просто на взискателни работни станции, Пикове на процесора („пикове“) са едни от най-често срещаните симптоми на производителностWPR и WPA са особено полезни за улавяне на случващото се по време на тези пикове и разбиране на причините за тях.
Типичният работен процес включва използването на WPR за стартиране на заснемането точно преди да възникне проблемътТози процес трябва да се инициира или чрез графичния интерфейс, или чрез командния ред, и да се спре веднага щом възникне пик или аномалия в производителността. По този начин полученият .etl файл точно отразява поведението на системата по време на критичния прозорец.
След това този файл се отваря с WPA, който предлага много интуитивен визуален интерфейс за проверка на данниМожете да видите графики на времето на процесора, консумацията на памет, I/O и други броячи, а след това да разгледате подробно глобалния системен изглед, за да видите конкретни процеси, конкретни нишки и дори стекове от повиквания, които обясняват какъв код се е изпълнявал във всеки даден момент.
Чрез спокойно анализиране на тези модели е възможно идентифицирайте реални пречки. Например, нишка, монополизираща процесора, специфична рутина, изпълнявана твърде често, или лошо проектирана критична секция. В области като поддръжка на индустриални двигатели или софтуер за управление, този тип подробен анализ е ключов за поддържане на конкурентоспособност и предотвратяване на прекъсвания на производството.

Диагностика на .NET и ASP.NET Core приложения: Visual Studio, Application Insights и PerfView
В екосистемата на .NET, освен WPR и WPA, има специфични инструменти, които се вписват много добре, когато целта е Диагностициране на проблеми с производителността в ASP.NET Core приложения или .NET backend услугиМного от тях се допълват от мониторинг на системно ниво.
на инструменти за профилиране, интегрирани във Visual Studio Те са много удобна първа стъпка. От самата среда за разработка можете да анализирате използването на процесора, разпределението на паметта, поведението на събирача на боклук и определени събития, свързани с производителността в приложението. Тъй като са интегрирани, те значително улесняват работата по време на фазите на разработка и тестване.
Когато сценарият се измести към производствена или разпределена среда, се намесват следните фактори. Azure Application InsightsТази телеметрична услуга автоматично събира различни данни, както в ASP.NET Core, така и в други стекове.
Един от най-интересните му елементи е карта на приложениетоТова е изглед, който показва всички компоненти на разпределена архитектура и ви позволява бързо да идентифицирате проблемни области или пречки в производителността между услугите. В допълнение към това... Azure Metrics Explorerкоето улеснява графичното представяне на показателите, съпоставянето на тенденциите и по-задълбоченото изследване на пиковете или спадовете в стойностите.
Таблицата с производителността на Application Insights предоставя изглед по операция: Показва времето на всяко действие в приложението, което ви позволява да се задълбочите в конкретна операция. и да видите всички зависимости, които допринасят за това, че отнема твърде много време, и дори от същия този изглед можете да извикате Профильор на Application Insights за да се получи подробно проследяване на производителността при поискване.
PerfView и PerfCollect: Задълбочен анализ в сценарии с .NET и Linux
Когато е необходимо да извлечете максимума от диагностиката в .NET приложения, е препоръчително да използвате PerfViewPerfView, инструмент, създаден от екипа на .NET специално за анализ на производителността, е способен да изучава използването на процесора, паметта, поведението на събирача на боклук (GC), ETW събития и синхронизацията на часовника с много фино ниво на детайлност.
Един особено мощен аспект на PerfView е неговият възможност за отваряне и анализ на .etl файлове, генерирани с WPRТова ви позволява да изучавате стековете за повиквания и цената на всяка функция. Microsoft поддържа много подробно ръководство за потребителя, достъпно както в самия инструмент, така и в GitHub, което обяснява случаите на употреба, командите и препоръчителните работни процеси.
Основният недостатък е, че PerfView работи само на Windows, така че не може да се стартира директно на Linux сървъри, работещи с ASP.NET Core приложения. За да преодолеят това ограничение, .NET общността и екипът предлагат PerfCollect, Bash скрипт, който използва вградени инструменти на Linux като например perf и LTTng за заснемане на съвместимо проследяване.
Работният процес в този случай включва изпълнение на PerfCollect в Linux среда, където възниква проблемът с производителността. съберете следата и прехвърлете получения файл на компютър с Windows.Оттам се отваря с PerfView, за да се извърши задълбочен анализ на стековете на повиквания, използването на процесора и поведението на GC.
Подробна информация за това как да инсталирате PerfCollect, как да стартирате и спирате сесии за проследяване и как да интерпретирате резултатите, като го комбинирате с PerfView и други диагностични инструменти, можете да намерите в GitHub.
Анализ на пречките в HoloLens и устройствата чрез WPA
Мониторингът на производителността не се ограничава само до сървъри и настолни компютри; той е особено полезен и в устройства като HoloLensкъдето температурните и ресурсните маржове са по-ограничени. Идентифицирането на процеси, които повишават температурите, или нишки, които насищат процесора, е от решаващо значение за поддържането на плавно изживяване в смесена реалност.
В тези сценарии се използва и ETW инфраструктурата. HoloLens може да генерира следи, използвайки Windows Performance RecorderТе се запазват като .etl файлове, които след това се отварят с WPA от тестов компютър. Това позволява визуализация на хардуерни или софтуерни проблеми, като например прегряване или особено взискателни процеси.
За да използвате WPA, просто изтеглете приложението от Microsoft Store или инсталирайте Windows Performance Toolkit чрез комплекта за оценка и внедряване на Windows (ADK). Комплектът включва и други общи инструменти за отстраняване на грешки и диагностика за платформата.
Заснемането с HoloLens се извършва чрез Портал за устройстваОт страничното меню отворете секцията „Мониторинг на производителността“, изберете предварително дефиниран профил или заредете персонализиран, щракнете върху „Стартиране на мониторинг“ и проблемният сценарий ще бъде възпроизведен. След като необходимите данни бъдат събрани, спрете мониторинга и порталът ще покаже следата в долната част на страницата.
Този ETL файл може да бъде изтеглен директно, отворен в WPA на машината за анализ или споделен с някой друг, за да извърши анализа в неговата среда. След като е в WPA, е възможно да се приложат специфични профили за анализ и да се фокусира върху процесора, паметта, графичния процесор или всяка друга подсистема, свързана с изживяването със смесена реалност.
Подготовка на файлове и профили за анализ с Windows Performance Analyzer
За да бъде WPA анализът наистина ефективен, е препоръчително да се организират необходимите ресурси около .etl файла. Препоръчително е да създадете папка, съдържаща данните за проследяване, символите и WPA профилите. които ще се използват, така че инструментът да има лесен достъп до всичко.
Типичен пример за работеща структура би бил файлът да е в една и съща папка. Проследяващ файл HoloLens_trace_file.etl, WPA профил, като например CPU_analysis.wpaProfile, и подпапка „Symbols“ с всички необходими .pdb файлове, които вече са декомпресирани. WPA може след това да разрешава стекове от повиквания с имена на функции, четими за човек, което е ключово за точното определяне коя част от кода генерира натоварването.
Основният работен процес за анализ в WPA обикновено е: Стартирайте програмата, отворете .etl файла от менюто „Файл > Отвори“ и го оставете да зареди първоначалните данни. След това заредете символите от менюто за проследяване („Проследяване > Зареждане на символи“ или подобно, в зависимост от версията), като посочите папката, където се намират .pdb файловете.
След като WPA има символи, той може Приложете специфичен профил за анализ от менюто с профиличрез избиране на съответния .wpaProfile файл. Тази стъпка автоматично генерира серия от графики и таблици, които се показват в раздела за анализ, като се фокусират върху най-подходящите аспекти за този тип мониторинг (напр. процесор, планировчик, дисков вход/изход и др.).
Оттам нататък работата включва изследване на тези изгледи, разширяване на възлите, филтриране по процеси или нишки и съпоставяне на видяното в графиките с наблюдаваното поведение на устройството. Самият инструмент включва много полезен уводен раздел и е налична изобилна документация и обучителни материали за по-нататъшно проучване, включително уводни видеоклипове и подробни ръководства.
Най-добрите калкулатори за пречки за Windows
Сред най-популярните опции са някои инструменти, които с различни подходи, Те се опитват да определят количествено несъответствието между основните компоненти на системата.Те не са перфектни, но са показателни, ако знаете как да разчетете резултатите им.
Един от най-известните е Калкулатор за пречки при изграждане на компютърИнтерфейсът му е прост: избирате процесор, графична карта, желаната резолюция и вида употреба (например игри), а инструментът изчислява дали комбинацията ще създаде значително затруднение или не.
Силната страна на този калкулатор е, че Това ви позволява много лесно да комбинирате хардуер от различни производители. Той предоставя бърз и ясен отговор дали процесорът ще затрудни графичния процесор или обратното. Основният му недостатък е, че не взема предвид размера и скоростта на RAM паметта, фактори, които също влияят значително върху реалната производителност на системата.
За малко по-подробен анализ можете да се обърнете към калкулатор за пречки CPU агентЗа разлика от предишната, тази помощна програма взема предвид количеството памет, нейната скорост, както и процесора, графичния процесор, резолюцията и качеството на графиката, които планирате да използвате.
Друго предимство на този инструмент е, че Той предлага разширена информация за всеки компонент. Например: дали процесорът включва вградено охлаждане, колко добре се представя при различни резолюции, какви проценти на използване се очакват и т.н. Всичко това помага за по-добро разбиране на цялостната картина и вземане на информирано решение.
И в двата случая това са безплатни услуги, които са много лесни за използване: избирате желаните компоненти, изпълнявате изчислението и получавате резултати след няколко секунди. Препоръчително е обаче да отделите време за интерпретация на резултатите, а не да разчитате само на общ процент.
Как да използвате калкулатори и форуми, за да изберете правилния хардуер
Калкулаторите за пречки сами по себе си не бива да бъдат единственият източник за вземане на решения. Те обаче са много полезен първи филтър. В идеалния случай те трябва да се използват за стесняване на избора на няколко разумни комбинации от процесор, графичен процесор и RAM памет.и оттам да проучите по-нататък.
Добро допълнение е да отидете на форуми на самите производители на хардуер или специализирани общности За да намерите други потребители, които използват същата комбинация от компоненти, която обмисляте, често ще намерите теми с реален опит, бенчмаркове и всички проблеми, с които са се сблъсквали.
Струва си също да задавате директни въпроси: Проверете дали някой е имал проблеми с конкретен процесор и графична карта при работа със същия софтуер. които възнамерявате да използвате. Или поискайте предложения за алтернативни комбинации, които биха могли да работят по-добре в рамките на същия бюджет.
Освен това е много полезно да се разчита на персонализирани страници за конфигурация на компютъраТези инструменти ни позволяват да балансираме бюджета, производителността и потреблението на енергия. Чрез комбиниране на информация от калкулатори, форуми и тези конфигуратори, можем да стигнем до солидна покупка, съобразена с нашите реални нужди.
Този подход ви позволява не само да изберете правилните компоненти, но и да го направите със значителна увереност, знаейки, че има потребители с положителен опит и че вероятността да се сблъскате със сериозни затруднения ще бъде много по-малка.
Как да проверите за пречки на предварително сглобен компютър с помощта на инструменти на Windows
След като оборудването е сглобено и в употреба, няма нужда незабавно да се прибягва до външни услуги за откриване на дисбаланси. Windows включва Task Manager, много ценен инструмент за наблюдение на натоварването на процесора, RAM паметта, диска, графичния процесор и мрежата в реално време..
Основната процедура се състои от:
- Отворете диспечера на задачите.
- Затворете всички приложения, освен това, което искате да анализирате.
- Наблюдавайте как се развиват различните ресурси, докато се изпълнява типичното работно натоварване.
Ако по време на използването на определена програма забележите, че процесорът, паметта, дискът или мрежата Те се използват постоянно със 100% капацитет.Този компонент вероятно е лимитът на системата. Той е доста ясен признак за пречка, който помага да се определи коя част да се надгради първо.
Класически пример е много взискателна игра, чиито изисквания към процесора надвишават това, което предлага инсталираният процесор. В такива случаи, Натоварването на процесора може да бъде постоянно на 100%, докато RAM паметта не се използва толкова много.
Чрез повтаряне на тези тестове с различни приложения и натоварвания, можете постепенно да изградите сравнително реалистична картина за това кой компонент най-много възпрепятства цялостната производителност на системата. И следователно, кое надграждане би било най-рентабилно.
Цялата тази екосистема за мониторинг – от WPR и WPA до PerfView, Application Insights, калкулатори за пречки, мрежов мониторинг или прости изгледи на диспечера на задачите – ви позволява да изградите сравнително точна картина за това къде се губи производителност. Целта: да се локализират и коригират пречките много по-бързо и ефективно. Избягвайте сляпото залагане на скъпи актуализации, които след това не решават истинския проблем.
