Usar Windows Performance Recorder per detectar colls d'ampolla

  • Windows Performance Recorder i Windows Performance Analyzer permeten capturar i analitzar traces ETW per localitzar colls d'ampolla reals a Windows.
  • En aplicacions .NET i ASP.NET Core es combinen amb Visual Studio, Application Insights, PerfView i PerfCollect per a un diagnòstic profund a Windows i Linux.
  • Eines de xarxa, calculadores de coll d'ampolla i el mateix administrador de tasques ajuden a identificar desequilibris de maquinari i saturació de recursos.
  • Integrar dades de sistema, mètriques daplicació i proves de maquinari permet prioritzar correctament què optimitzar o actualitzar per millorar el rendiment.

Anàlisi de colls d'ampolla amb Windows Performance Recorder

Quan un equip o una aplicació comencen a anar a trompades, el més normal és donar la culpa a la CPU, a el moltó o fins i tot a la xarxa, però sense dades fiables és molt fàcil equivocar-se de diagnòstic. Windows Performance Recorder (WPR) i Windows Performance Analyzer (WPA) permeten capturar i visualitzar amb molt de detall què està passant al sistema exactament durant aquests pics de càrrega o caigudes de rendiment.

Lluny de ser eines només per a gurus, WPR i WPA poden encaixar perfectament al dia a dia tant de desenvolupadors com d'administradors o usuaris avançats. Si es combinen amb altres utilitats com Visual Studio, Application Insights, PerfView, scripts com PerfCollect o fins i tot el propi Administrador de tasques, s'obté un arsenal molt potent per localitzar colls d'ampolla de CPU, memòria, disc, GPU, xarxa o dependències externes.

Què és Windows Performance Recorder i com encaixa a l'ecosistema de diagnòstic

Windows Performance Recorder forma part del Windows Performance Toolkit (WPT), un conjunt d'eines de Microsoft orientades a la captura i anàlisi de rendiment a nivell de sistema operatiu. WPT inclou dues peces principals:

  • WPR. S?encarrega de gravar el rastre d?esdeveniments.
  • WPA. La interfície gràfica on després s'obre i estudia aquest rastre.

WPR es basa en la infraestructura de Seguiment d'esdeveniments per a Windows (ETW), el sistema de traces de nivell kernel integrat a Windows. Cada sessió d'enregistrament es desa en un fitxer amb extensió .etl (Event Trace Log), que és el que després obrirem amb WPA per estudiar el comportament del sistema i de les aplicacions amb una enorme granularitat.

Per controlar què es registra, WPR utilitza fitxers de perfil amb extensió .wprp. S'hi defineix el conjunt de proveïdors i esdeveniments, la freqüència de mostreig, el nivell de detall, etc. Gràcies a aquests perfils es pot adaptar la captura a escenaris concrets.

D'altra banda, Analitzador de rendiment de Windows és l'eina gràfica que permet obrir els .etl i explorar la informació com a gràfics de temps, taules jeràrquiques, línies de temps correlacionades i vistes específiques per a CPU, memòria, E/S, xarxa i molts altres subsistemes. WPA és molt flexible. Permet ordenar dades per diversos camps, fer zoom temporal, agrupar per fils, processos, mòduls, piles de trucades, etc.

Windows Performance Analyzer per a colls d'ampolla

Conceptes i terminologia clau abans de gravar seguiments

Abans de llançar-se a gravar seguiments, convé dominar una sèrie de termes bàsics que veuràs constantment en la documentació i en les eines mateixes. Conèixer aquest argot et permet interpretar millor els resultats i no perdre't entre sigles.

El primer terme clau és ETW (Event Tracing for Windows). Es tracta del mecanisme de seguiment d'esdeveniments de nivell nucli integrat a Windows. Gràcies a ETW, tant el nucli del sistema com moltes aplicacions i components poden emetre esdeveniments de manera eficient i de baix impacte.

Quan aquests esdeveniments es bolquen a disc, s'emmagatzemen en un fitxer de registre de seguiment d'esdeveniments amb extensió .etl. Cada cop que es fa un seguiment amb WPR, el resultat típic és un fitxer d'aquest tipus, que després podrem analitzar amb WPA o altres eines compatibles, com PerfView.

La pròpia aplicació que inicia i atura l'enregistrament s'anomena WPR (Windows Performance Recorder). Aquest gravador accepta com a entrada un o diversos perfils .wprp, que especifiquen quins esdeveniments es recolliran i amb quina configuració. És habitual seleccionar perfils predefinits per a CPU, E/S, gràfics o ús general del sistema.

Finalment, WPA (Windows Performance Analyzer) és la interfície gràfica que obre els .etl i permet navegar per les dades, ordenar-les, filtrar-les i correlacionar-les. Des de WPA podeu aprofundir en quins fils estan saturant la CPU, quins processos generen més E/S de disc, quines dependències externes estan provocant latències, o com es reparteix el temps entre diferents operacions en una aplicació.

Ús de WPR i WPA per detectar colls d'ampolla de CPU i sistema

En entorns industrials, de backend o simplement en estacions de treball exigents, els pics de CPU (“spikes”) són un dels símptomes de rendiment més habituals. WPR i WPA són especialment útils per capturar el que passa durant aquests pics i entendre què els provoca.

El flux de treball habitual consisteix a fer servir WPR per iniciar la captura just abans que es reprodueixi el problema, ja sigui des de la interfície gràfica o des de línia d'ordres, i aturar-la quan s'hagi manifestat l'spike o l'anomalia de rendiment. D'aquesta manera, el fitxer .etl resultant reflecteix exactament el comportament del sistema a la finestra crítica.

Després, s'obre aquest fitxer amb WPA, que ofereix una interfície visual molt intuïtiva per inspeccionar les dades. Es poden consultar gràfics temporals de CPU, consum de memòria, E/S i altres comptadors, i després baixar des de la vista global del sistema fins a processos concrets, fils específics i fins i tot piles de trucades que expliquen quin codi s'estava executant a cada moment.

Analitzant amb calma aquests patrons és possible identificar colls dampolla reals. Per exemple, un fil que monopolitza la CPU, una rutina concreta que s'executa massa sovint o una secció crítica mal dissenyada. En àmbits com el suport a motors industrials o programari de control, aquest tipus d'anàlisi detallada és clau per mantenir la competitivitat i evitar aturades de producció.

WPR

Diagnòstic d'aplicacions .NET i ASP.NET Core: Visual Studio, Application Insights i PerfView

A l'ecosistema .NET, a més de WPR i WPA, hi ha eines específiques que encaixen molt bé quan l'objectiu és diagnosticar problemes de rendiment en aplicacions ASP.NET Core o serveis backend .NET. Moltes es complementen amb els seguiments a nivell de sistema.

Les eines de generació de perfils integrades a Visual Studio són una primera parada molt còmoda. Des del propi entorn de desenvolupament es pot analitzar l'ús de CPU, l'assignació de memòria, el comportament del recol·lector d'escombraries i certs esdeveniments de rendiment dins l'aplicació. Com que estan integrades, faciliten molt el treball en fase de desenvolupament i proves.

Quan l'escenari ja es desplaça cap a producció o entorns distribuïts entra en joc Azure Application Insights. Aquest servei de telemetria recopila automàticament diverses dades, tant a ASP.NET Core com a altres stacks.

Un dels seus elements més interessants és el mapa d'aplicació,. Es tracta d´una vista que ensenya tots els components d´una arquitectura distribuïda i permet detectar d´una ullada els punts conflictius o colls d´ampolla de rendiment entre serveis. A això se li suma el Explorador de mètriques d'Azure, que facilita graficar mètriques, correlacionar tendències i aprofundir en pics o caigudes de valors.

El full de rendiment de l'Application Insights ofereix una visió per operació: mostra el temps de cada acció de l'aplicació, permet aprofundir en una operació concreta i veure totes les dependències que contribueixen a que trigui massa, i fins i tot des d'aquesta mateixa vista es pot invocar el Profiler d'Application Insights per capturar seguiments detallats de rendiment a demanda.

PerfView i PerfCollect: anàlisi profunda en .NET i escenaris Linux

Quan es necessita esprémer al màxim el diagnòstic en aplicacions .NET, convé recórrer a PerfView, una eina creada pel propi equip de .NET específicament per analitzar rendiment. PerfView és capaç d'estudiar l'ús de CPU, la memòria, el comportament del recol·lector d'escombraries (GC), els esdeveniments de ETW i el temps de rellotge amb un nivell de detall molt fi.

Un aspecte especialment potent de PerfView és el vostre capacitat per obrir i analitzar fitxers .etl generats amb WPR, permetent estudiar les piles de trucades i el cost de cada funció. Microsoft manté una guia d'usuari molt completa disponible des de la pròpia eina ia GitHub, on s'expliquen casos d'ús, ordres i fluxos de treball recomanats.

El gran inconvenient és que PerfView només s'executa a Windows, de manera que no es pot llançar directament a servidors Linux on corrin aplicacions ASP.NET Core. Per salvar aquesta limitació, la comunitat i l'equip de .NET ofereixen PerfCollect, un script Bash que utilitza eines natives de Linux com perf i LTTng per capturar seguiments compatibles.

El flux en aquest cas consisteix a executar PerfCollect a l'entorn Linux on es manifesta el problema de rendiment, recopilar el seguiment i traslladar el fitxer resultant a un equip Windows. Des d'aquí, s'obre amb PerfView per fer l'anàlisi en profunditat de piles de trucades, ús de CPU i comportament del GC.

A GitHub es pot trobar informació detallada sobre com instal·lar PerfCollect, com arrencar i aturar les sessions de traces, i com interpretar els resultats combinant-ho amb PerfView i altres eines de diagnòstic.

Anàlisi de colls d'ampolla a HoloLens i dispositius a través de WPA

El seguiment de rendiment no es limita a servidors i PC descriptori; també és especialment útil a dispositius com HoloLens, on el marge tèrmic i de recursos és més ajustat. Localitzar processos que disparen la temperatura o fils que saturen la CPU és fonamental per mantenir una experiència fluida de realitat mixta.

En aquests escenaris s'utilitza igualment la infraestructura d'ETW. HoloLens pot generar seguiments mitjançant la Gravadora de rendiment de Windows, guardant-los com a fitxers .etl que després s'obren amb WPA des d'un PC d'anàlisi. D'aquesta manera es poden visualitzar colls d'ampolla de maquinari o programari, com ara sobreescalfaments o processos especialment exigents.

Per disposar de WPA, només cal descarregar l'aplicació des de Microsoft Store o instal·lar el Windows Performance Toolkit a través del Kit d'avaluació i implementació de Windows (ADK). El kit també inclou altres eines de depuració i diagnòstic general per a la plataforma.

La captura a HoloLens es realitza a través del Portal de dispositius. Des del menú lateral s'accedeix a l'apartat de “Seguiment del rendiment”, s'escull un perfil predefinit o se'n carrega un de personalitzat, es prem a “Iniciar seguiment” i es reprodueix l'escenari problemàtic. Un cop capturat el que calgui, s'atura el seguiment i el portal mostra el rastre a la part inferior de la pàgina.

Aquest fitxer ETL es pot descarregar directament, obrir-lo a WPA a l'equip d'anàlisi, o bé compartir-lo amb una altra persona perquè realitzi l'estudi al seu entorn. Un cop a WPA, és possible aplicar perfils d'anàlisis específiques i centrar-se en CPU, memòria, GPU o qualsevol altre subsistema rellevant per a l'experiència de realitat mixta.

WPA

Preparació de fitxers i perfils per a l'anàlisi amb Windows Performance Analyzer

Perquè l'anàlisi a WPA sigui realment efectiva, convé organitzar bé els recursos necessaris al voltant del fitxer .etl. És recomanable crear una carpeta amb el seguiment, els símbols i els perfils de WPA que es facin servir, de manera que l'eina tingui fàcil accés a tot.

Un exemple típic d'estructura de treball seria disposar a la mateixa carpeta del fitxer de seguiment HoloLens_trace_file.etl, un perfil de WPA com a CPU_analysis.wpaProfile i una subcarpeta “Symbols” amb tots els fitxers .pdb necessaris ja descomprimits. WPA pot resoldre les piles de trucades amb noms de funcions llegibles, una cosa clau per localitzar quina part del codi està generant la càrrega.

El flux bàsic d'anàlisi a WPA sol ser: iniciar el programa, obrir el fitxer .etl des del menú “Fitxer > Obrir” i deixar que carregui les dades inicials. Després es carreguen els símbols des del menú de seguiment (“Track > Load Symbols” o similar, depenent de la versió), apuntant a la carpeta on hi ha els .pdb.

Un cop WPA disposa de símbols, es pot aplicar un perfil d'anàlisi concreta des del menú de perfils, escollint el fitxer .wpaProfile corresponent. Aquest pas genera automàticament una sèrie de gràfics i taules que es mostren a la pestanya d'anàlisi, centrats en els aspectes més rellevants per a aquest tipus de seguiment (per exemple CPU, scheduler, E/S de disc, etc.).

A partir d'aquí, el treball consisteix a explorar aquestes vistes, expandir nodes, filtrar per processos o fils, i correlacionar el que es veu als gràfics amb el comportament observat al dispositiu. La pròpia eina inclou una pestanya d'introducció molt útil i hi ha abundant documentació i material formatiu per aprofundir, incloent vídeos introductoris i guies pas a pas.

Principals calculadores de coll d'ampolla per a Windows

Entre les opcions més populars destaquen algunes eines que, amb diferents enfocaments, intenten quantificar el desajust entre els components principals del sistema. No són perfectes, però sí orientatives si se sap llegir-ne els resultats.

Una de les més conegudes és la calculadora de colls dampolla de PC Builds. La interfície és senzilla: s'escull un processador, una targeta gràfica, la resolució objectiu i el tipus d'ús (per exemple, jocs), i l'eina calcula si la combinació generarà coll d'ampolla significatiu o no.

El punt fort daquesta calculadora és que permet barrejar maquinari de diferents fabricants amb molta facilitat i ofereix una resposta ràpida i clara sobre si la CPU limitarà la GPU o viceversa. La seva principal carència és que no té en compte la mida i velocitat de la RAM, factors que també influeixen força en el rendiment real del sistema.

Per a una anàlisi una mica més detallada es pot acudir a la calculadora de colls dampolla de CPU Agent. A diferència de l'anterior, aquesta utilitat sí que considera la quantitat de memòria, la seva velocitat, a més de la CPU, la GPU, la resolució i la qualitat gràfica que es pensa utilitzar.

Un altre avantatge d'aquesta eina és que ofereix informació ampliada sobre cada component. Per exemple: si el processador inclou refrigeració de sèrie, com es comporta en diferents resolucions, quins percentatges d'utilització s'esperen, etc. Tot plegat ajuda a entendre millor el conjunt i prendre una decisió informada.

En tots dos casos es tracta de serveis gratuïts, d'ús molt simple: se seleccionen els components desitjats, es llença el càlcul i en pocs segons s'obtenen resultats. Això sí, és recomanable dedicar una mica de temps a interpretar les conclusions i no quedar-se només amb un percentatge global.

Com utilitzar calculadores i fòrums per triar el maquinari adequat

Les calculadores de coll d'ampolla, per elles mateixes, no haurien de ser l'única font de decisió. No obstant això, sí que són un primer filtre molt útil. L'ideal és fer-les servir per acotar diverses combinacions raonables de CPU, GPU i RAM, ia partir d'aquí investigar més a fons.

Un bon complement és acudir als fòrums dels propis fabricants de maquinari o comunitats especialitzades per cercar altres usuaris que utilitzin la mateixa combinació de components que esteu valorant. En molts casos ja hi haurà fils oberts amb experiències reals, benchmarks i possibles problemes detectats.

També val la pena plantejar preguntes directes: consultar si algú ha patit colls d'ampolla amb un cert processador i targeta gràfica en executar el mateix programari que es pretén utilitzar. O demanar suggeriments de combinacions alternatives que puguin anar millor amb el mateix pressupost.

A més, és molt útil recolzar-se a pàgines de configuració de PCs personalitzades. Aquestes ens permeten equilibrar el pressupost, el rendiment i el consum elèctric. Combinant la informació de les calculadores, els fòrums i aquests configuradors es pot arribar a una compra força sòlida i ajustada a les necessitats reals.

Amb aquest plantejament s'aconsegueix no només escollir components correctes, sinó fer-ho amb força confiança. Sabent que hi ha usuaris amb experiències positives i que la probabilitat de trobar colls d'ampolla greus serà molt menor.

Com comprovar colls dampolla en un PC ja muntat amb eines de Windows

Quan l'equip ja està muntat i en ús, no cal recórrer immediatament a utilitats externes per detectar desequilibris. Windows inclou l'administrador de tasques, una eina molt valuosa per supervisar la càrrega de CPU, RAM, disc, GPU i xarxa en temps real.

El procediment bàsic consisteix en:

  1. Obrir l'administrador de tasques.
  2. Tancar totes les aplicacions excepte la que es vulgui analitzar.
  3. Observar com evolucionen els diferents recursos mentre sexecuta la càrrega de treball típica.

Si durant l'ús d'un programa concret veieu que la CPU, la memòria, el disc o la xarxa es claven en el 100% d'ús de forma sostinguda, probablement aquest component estigui marcant el límit del sistema. És un senyal força clar de coll d'ampolla, que ajuda a decidir quina peça convé actualitzar primer.

Un exemple clàssic és el d'un joc molt exigent el requisit del qual de processador supera el que ofereix la CPU instal·lada. En aquests casos, la càrrega de CPU pot estar constantment al 100% mentre la RAM no s'aprofita tant.

Repetint aquest tipus de proves amb diferents aplicacions i càrregues, es pot anar component un mapa força realista de quin component està frenant més el rendiment global de l'equip. I, per tant, quina seria l‟actualització més rendible.

Tot aquest ecosistema de seguiment -des de WPR i WPA fins a PerfView, Application Insights, calculadores de coll d'ampolla, monitorització de xarxa o simples vistes de l'Administrador de tasques- permet construir una imatge força precisa d'on s'està perdent el rendiment. L'objectiu: localitzar i corregir colls d'ampolla de manera molt més ràpida i efectiva. Evitant apostar a cegues per actualitzacions costoses que després no resolen el problema real.

Windows
Article relacionat:
5 consells per millorar el rendiment del teu ordinador amb Windows