Microsoft ha annunciato, un po’ a sorpresa, una serie di strumenti open source chiamati Microsoft Performance Tool per Linux e Android. Si tratta di strumenti sviluppati dalla casa di Redmond che consentono di misurare le prestazioni del sistema analizzando file di registro e estrapolando trace file da graficare e studiare. Questo set di strumenti è stato utilizzato dai team di Microsoft per misurare le prestazioni di Windows negli ultimi 15 anni: ora è disponibile per tutti.
Alla scoperta dei Microsoft Performance Tool
Con questi tool, potete analizzare nei minimi dettagli cosa sta facendo il sistema operativo. Tool di questo tipo sono molto utili per il debug di problemi a livello di sistema operativo. Possono essere usati per comprendere i meccanismi interni del sistema e ottenerne una rappresentazione grafica.
Potete monitorare e ricavare informazioni sui seguenti aspetti:
- Chiamate di sistema
- Attività del disco
- I/O
- Context switch dei processi
- Thread
- Livello di stress della CPU nel tempo
Cerchiamo di capire in che contesto possono tornare utili. Pensate a uno scenario in cui state cercando di debuggare un arresto anomalo di un gioco in ambiente Linux. Oppure, state cercando di ripetere un’anomalia che si verifica in un programma complesso, come Firefox o un File manager. Grazie a questi tool potete acquisire rapidamente diversi log e identificare facilmente i picchi nella CPU o nella memoria o nei processi a livello di thread.
Qual è l’obiettivo di big M?
L’intero set di strumenti è multipiattaforma. Si basa su .NET, anch’esso open source, e dipende dalla versione 3.0+. .NET può essere facilmente installato su Ubuntu o Fedora. Vengono utilizzati i seguenti programmi di monitoraggio delle prestazioni:
Per il tracing:
- LTTng: (Linux Kernel CPU scheduling, Processi, Threads, Block IO/Disk, chiamate di sistema, etc)
- perf: Linux CPU Sampling (cpu-clock)
- Perfetto: Android & Chromium (CPU Scheduling, CPU Sampling, CPU Frequency, FTrace, Android Logs, Generic Events / Default Tracks, GPU Counters)
Per il logging:
- Dmesg
- Cloud-Init (Canonical)
- WaLinuxAgent (Microsoft Azure Linux Agent)
Ciò che trovo fantastico è che potete ampliare le funzionalità di questi strumenti per adattarli alle vostre esigenze. Per farlo potete scrivere i vostri personalissimi script (es. in Python). Potete trovare un’aiuto ai seguenti indirizzi:
Ovviamente tutti questi strumenti si integrano alla perfezione con Performance Analyzer, strumento per Windows che crea grafici e tabelle di dati di eventi ETW e che vi permette di graficare i log e tirare fuori tutte le informazioni più importanti in breve tempo. Provo a rispondere alla domanda che mi sono posto nel titolo di questo paragrafo. A mio parere sembra chiaro che l’obiettivo di Microsoft sia mettere nelle mani degli sviluppatori tutti gli strumenti necessari per poter lavorare al meglio su Windows usando Linux (via WSL, Ça va sans dire). Voi cosa ne pensate?
Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.