Monitor grafico della frequenza per Raspberry PI

Monitor frequenze

Come visualizzare i parametri che portano il nostro sistema al throttling,

Quattro giorni fa abbiamo visto in che modo interagire con Linux per ottenere il monitoraggio delle temperature del nostro sistema. Oggi approfondiamo l’argomento per aggiungere anche il monitoraggio delle frequenze di lavoro di ciascun core.

Ricordiamo innanzi tutto come accedere alla frequenza attuale di lavoro dei cores:

ove con cpu? intendiamo cpu0, cpu1, cpu2 e cpu3. Ricordiamo anche che lo script è stato progettato per monitorare un Raspberry PI, ma dovrebbe funzionare allo stesso modo su tutte le macchine Linux.

Non dobbiamo far altro, quindi, che modificare il vecchio script per il monitoraggio delle temperature, ed aggiungere la lettura/scrittura dei parametri relativi alle frequenze, opportunamente formattati, nel nostro file dei risultati. Potremo così visualizzare il comportamento di ciascuno dei nostri cores e controllare se il nostro Raspy rallenta.

Ho testato la procedura sul mio Raspberry PI 3 sotto carico totale (i soliti programmi di matematica), ed ecco i risultati ottenuti dopo un test di 15 minuti.

Monitor grafico temperatura frequenza

Monitor grafico media frequenze

Appare evidente come all’innalzamento delle temperature di lavoro corrisponda un repentino dimezzamento della frequenza di lavoro (da 1.2GHz a 600MHz). Ma alla fine del test, quale è stata la frequenza media di lavoro del PC? Possiamo estrarre questa informazione studiando l’andamento della frequenza nel tempo. Per evitare di sovraccaricare inutilmente il programma di monitoraggio, utilizzeremo un nuovo script per elaborare direttamente il file dei risultati in formato CSV.

Lo script leggerà la frequenza di ciascuno dei quattro cores, sommerà i valori in un’unica variabile e, dividendo il valore per 4 avremo la frequenza media dei cores.

Per avere il trend dell’andamento della frequenza sarà sufficiente utilizzare una variabile TREND che conterrà per ciascuna lettura la somma delle precedenti medie della frequenza, divisa per il numero di letture eseguite sino a quel momento. Per ciascuna lettura, infine, stamperemo il valore MEDIA_CPU e TREND.

Rispetto agli script precedenti, qui abbiamo una sezione di inizializzazione, BEGIN, ed il costrutto if-then per saltare la prima riga del file (quella con le inutili intestazioni).

Potremo leggere i dati a video, o redirigere l’output in un secondo file (ad esempio risultati.csv) con il comando:

Da notare che al momento gli script sono forniti “as-is“, non sono implementate funzioni di controllo per filtrare eventuali errori. Terminata la fase di prototipizzazione dello script, sarà possibile aggiungere i controlli necesari.

L’elaborazione dei risultati espressi graficamente è riportata nell’immmagine seguente.

Monitor grafico della frequenza

Ogni colonna rappresenta la frequenza media sui quattro cores del Raspberry PI 3. Abbiamo 4 cores, ciascuno dei quali lavora a pieno ritmo (1.2GHz) o in  throttling (600MHz): questo spiega come4 mai si abbiano quttro letture di frequenza differenti a livello di frequenza media per lettura. La linea rossa indica la frequenza media cumulativa alla quale il Raspberry ha effettivamente lavorato. Sotto carico il nostro Raspy tende a perdere quasi il 25% di efficienza a causa delle temperature e del throttling. In un prossimo articolo vedremo se sia possibile ovviare ad un simile comportamento.

Come di norma, gli script completi sono presenti su GitHub, a questo indirizzo. Se avete idee per rendere  lo script più utile, o aggiungere parametri importanti, scrivetemi: le soluzioni migliori verranno pubblicate.

Link utili:

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.