Visualizzazione post con etichetta CPU. Mostra tutti i post
Visualizzazione post con etichetta CPU. Mostra tutti i post

mercoledì 13 settembre 2023

PowerShell: Monitorare la temperatura dell'hardware

Monitorare la temperatura dell'hardware di un pc può rivelarsi fondamentale nella prevenzione dei guasti o cali di prestazioni e nel miglioramento delle condizioni operative. I computer sono dotati di diversi sensori in grado di rilevare la temperatura dei diversi componenti (CPU, HD, motherboard, Ram, ecc) tuttavia in Windows non esiste un modo semplice e integrato per monitorare tali sensori.

Per monitorare la temperatura dell'hardware tramite PowerShell ci viene in soccorso il modulo PSTemperatureMonitor (https://github.com/TobiasPSP/PSTemperatureMonitor). Il modulo utilizza una DLL open-source rilasciata da https://openhardwaremonitor.org/ che consente di interrogare i sensori di temperatura presenti nel sistema. La libreria aggiornata consente di rilevare la temperatura di un'ampia gamma di CPU e di HD.
Prima di poter utilizzare tale modulo va installato tramite il seguente comando da una  PowerShell eseguito come amministratore

 Install-Module -Name PSTemperatureMonitor   
Installazione Modulo PSTemperatureMonitor
FIG 1 - Installazione Modulo PSTemperatureMonitor

Il modulo fornisce il cmdlet Start-MonitorTemperature per monitorare la temperatura dell'hardware. Per monitorare le temperature ad intervalli di 5 secondi è possibile utilizzare il seguente comando (anche questo va eseguito con privilegi di amministratore locale necessario per leggere lo stato dell'hardware)
 Start-MonitorTemperature -Interval 5 | Format-Table -Wrap  

Per terminare il monitoraggio premere la combinazione di tasti CTRL+C.
Monitoraggio Temperature, Start-MonitorTemperature
FIG 2 - Monitoraggio Temperature, Start-MonitorTemperature







venerdì 20 luglio 2018

InSpectre: Verificare la vulnerabilità del proprio sistema a Meltdown e Spectre

Meltdown e Spectre sono vulnerabilità hardware, scoperte dai ricercatori Project Zero di Google, che affliggono gran parte dei processori attualmente in commercio e che consentono a programmi e potenziali attaccanti di accedere ad aree protette di memoria di un computer. A distanza di mesi dalla loro scoperta Intel ha completato lo studio su tutte le architetture che ne sono afflitte e ha rilasciato un documento ufficiale, consultabile su
https://newsroom.intel.com/wp-content/uploads/sites/11/2018/04/microcode-update-guidance.pdf,
in cui vengono indicati i processori che riceveranno l'aggiornamento del microcodice e potranno essere utilizzati in piena sicurezza.

Dopo il rilascio del documento da parte di Intel, Gibson Research ha rilasciato una versione aggiornata dell'utility InSpectre. L'utility può essere scaricata gratuitamente da https://www.grc.com/inspectre.htm ed è aggiornata con le ultime informazioni fornite da Intel.
InSpectre, oltre ad indicare se il sistema è protetto da Meltdown e Spectre, indica anche se è previsto l'aggiornamento del microcodice del processore (Microcode Update Available) e se tale aggiornamento influisce sulle prestazioni (Performance) del sistema.

Sia Intel che AMD sono al lavoro con Microsoft per la certificazione e distribuzione degli aggiornamenti del microcodice dei processori tramite patch del sistema operativo.



lunedì 14 marzo 2016

Windows Quick Tip: Impostare l'affinità del processore e limitare il numero di core utilizzati da un processo

Settare l'affinità del processore permette di selezionare, per un determinato processo, quanti e quali core della CPU utilizzare. Per default Windows permette ad un processo di accedere a tutti i core disponibili, tuttavia tale impostazione può creare problemi, o comunque ridurre le prestazioni, delle applicazioni non ottimizzate per lavorare con più core. In questo caso per l'applicazione incriminata possiamo impostare l'affinità del processore in modo che venga utilizzato un solo core.

Per impostare l'affinità di un determinato processo possiamo procedere nel seguente modo:
  • Avviare l'applicazione/processo;
  • Avviare Task Manager (CTRL+SHIFT+ESC) e posizionarsi sulla scheda Processi  o Dettagli (a seconda della versione di Windows);
  • Cliccare con il tasto destro del mouse sul processo a cui vogliamo settare l'affinità e, dal menu contestuale, selezionare la voce Imposta AffinitàA questo punto non resta che selezionare su quali core il processo deve essere eseguito.
Impostazione Affinità tramite Task Manager/Gestione Attività
FIG 1 - Impostazione Affinità tramite Task Manager/Gestione Attività
Agendo tramite il Task Manager (o Gestione Attività) l'impostazione è solo temporanea: terminando e riavviando il processo le impostazioni di affinità torneranno quelle di default. Quello che possiamo fare è lanciare il processo con alcune opzioni da riga di comando oppure creare un collegamento. Prima però è necessario fare una piccola premessa.
I core della CPU sono numerati a partire da 0. Supponiamo che la nostra CPU sia dotata di 4 Core fisici. Windows, con l'utilizzo della tecnologia Hyper-Threading, vedrà 8 core numerati da 0 a 7 così come mostrato in tabella. Supponiamo di voler eseguire un processo solo sul Core 1 e Core 3. A questi 2 core assegniamo il valore 1 mentre ai restanti assegniamo valore 0 (si veda la seconda riga della tabella).

Core 7 Core 6 Core 5 Core 4 Core 3 Core 2 Core 1 Core 0
0 0 0 0 1 0 1 0

Nella seconda riga della tabella abbiamo il seguente valore binario 00001010 che convertito in esadecimale (HEX) corrisponde ad A. Questo valore verrà utilizzato all'interno del comando per impostare l'affinità del processore in modo che il processo venga eseguito solo sui Core 1 e 3.

Per creare un collegamento che imposti l'affinità del processore di un determinato processo:
  • Cliccare con il tasto destro del mouse su un'area vuota del desktop, quindi selezionare dal menu contestuale l'opzione Nuovo e poi cliccare su Collegamento.
  • Nella casella di testo Immettere il percorso per il collegamento inserire il comando che si intende eseguire. In questo caso il comando sarà del tipo
    cmd.exe /c start "Nome Programma" /affinity <numero_core_in_hex> "percorso completo file"
    ad es. se vogliamo eseguire notepad.exe sul core 3 e 1 il comando sarà
    cmd.exe /c start "Blocco note" /affinity A "C:\Windows\notepad.exe"

    Creazione di un collegamento per l'impostazione affinità del processore
    FIG 2 - Creazione collegamento per impostare l'affinità del processore
  • Una volta immesso il comando cliccare sul pulsante Avanti e digitare un nome da dare al collegamento quindi cliccare su Fine.
    Specificare un nome per il collegamento
    FIG 3 - Specificare un nome per il collegamento
Cliccando sul collegamento appena creato l'applicazione verrà eseguita solo sui core impostati. Se da Task Manager verifichiamo le impostazioni di affinità vedremo che sono impostate sul core 3 e 1 così come indicato nel collegamento.
Impostazione affinità del processore
FIG 4 - Impostazione affinità del processore