Come e perché monitorare l’utilizzo della CPU del server

Quando utilizzo qualsiasi applicazione, voglio che sia veloce. Applicazioni veloci mi rendono felice. E sono sicuro che è lo stesso con tutti. Se si possiede qualsiasi applicazione che funziona con Internet, è essenziale concentrarsi sulle prestazioni del server. Ci sono un sacco di cose per prendersi cura di avere un server ben performante. Ma per migliorare qualcosa, è necessario sapere dove si trova in primo luogo. Pertanto, il monitoraggio del server è il primo passo per aumentare le prestazioni del server.

Quando si parla di cosa monitorare per comprendere le prestazioni di un server, ci sono molte metriche che potrebbero venire in mente. Ci concentreremo su un solo in questo post: l’utilizzo della CPU del server. Inizieremo spiegando quale sia l’utilizzo della CPU del server e poi discuteremo perché e come monitorarlo.

CPU in colori Scalyr a significare server cpu usage monitor

Cosa significa l’utilizzo della CPU del server?

Tutto ciò che accade sul server è un’attività per il sistema. Questa attività si suddivide in processi eseguiti dal server. I processi possono essere di diverse complessità e differiscono in quanto velocemente possono essere completati. E sulla base di questo, la CPU richiede del tempo per eseguire il processo. In altre parole, la CPU viene utilizzata per eseguire il processo. L’utilizzo della CPU è la percentuale di tempo in cui la CPU viene utilizzata per completare le sue attività.

monitor di utilizzo della cpu del server

Quando il sistema è attivo e funzionante, una CPU può essere in tre stati: inattivo, occupato o in attesa di I/O.

Inattivo

Quando la CPU è in stato di inattività, la CPU non sta facendo nulla. Sta solo aspettando che venga assegnato un compito. È altamente improbabile vedere una CPU in stato di inattività se si dispone di un sistema a processore singolo. Anche se non si esegue alcuna applicazione o si fa nulla, la CPU verrà utilizzata per eseguire attività del sistema operativo. Ma se il tuo sistema ha più processori, potresti vederne uno o alcuni inattivi. Questo potrebbe essere perché solo uno o pochi processori vengono utilizzati e gli altri non hanno nulla a che fare.

Occupato

L’opposto dello stato di inattività è lo stato occupato, ovvero quando la CPU viene utilizzata per eseguire un processo. Una CPU è responsabile di diversi tipi di attività. Durante il processo di esecuzione delle attività, una CPU fa quattro cose:

  1. Fetch: Le istruzioni per completare l’attività sono memorizzate nella memoria. La CPU deve ottenere queste istruzioni dalla memoria per capire cosa fare.
  2. Decodifica: le istruzioni per la CPU possono essere in diversi formati, ad esempio un programma. Ad esempio, supponiamo che tu abbia scritto un programma in C, Java o Python. Le CPU non possono comprendere direttamente questi linguaggi di codifica. Deve decodificarlo in una forma che possa capire.
  3. Esegui: Questo è quando la CPU sta effettivamente facendo il compito.
  4. Storage: una volta che la CPU completa l’attività, deve fornire un feedback sull’attività. I risultati dopo l’esecuzione dell’attività vengono memorizzati nella memoria.

Operazioni I/O

Questo è lo stato in cui la CPU non è completamente inattiva ma non è occupata. Durante l’esecuzione di un processo, una CPU potrebbe dover inviare alcuni dati a un altro componente o processo. Oppure la CPU potrebbe dover attendere per ottenere dati da un altro processo o componente. In tal caso, è in attesa che l’operazione di I/O sia completa in modo che possa riprendere l’esecuzione del suo compito.

L’utilizzo della CPU è la misura della CPU quando è in uno stato non inattivo. Sebbene l’utilizzo della CPU sia misurato in percentuale, è possibile che i valori di utilizzo della CPU siano superiori al 100%. Ciò non significa che la CPU sia sovraccaricata. Ad esempio, si vedrebbe l’utilizzo della CPU superiore al 100% nei sistemi multiprocessore. Il valore di utilizzo della CPU per un sistema è la somma della percentuale di utilizzo della CPU delle singole CPU. Quindi, se si dispone di due processori e uno di essi ha un utilizzo della CPU del 60% e l’altro ha un utilizzo della CPU del 50%, il valore totale di utilizzo della CPU sarebbe del 110%.

Quali sono le cause di elevato utilizzo della CPU?

Trovare il nocciolo del problema ti aiuta a implementare soluzioni migliori per un utilizzo elevato della CPU. Ci possono essere vari motivi per l’utilizzo della CPU in base ai casi d’uso. Sto elencando le cause più comuni.

Processi con requisiti CPU elevati

Alcuni programmi richiedono risorse CPU elevate. Se si dispone di un sistema di specifiche basse e si sta tentando di eseguire un videogioco di fascia alta, ovviamente l’utilizzo della CPU passerà attraverso il tetto. Allo stesso modo, ci possono essere diversi processi che richiedono risorse CPU elevate per funzionare. Tali processi o un numero di processi che come un totale parziale utilizzano CPU elevata possono essere una delle cause. Su server, esecuzione di più servizi per mantenere il server in esecuzione, simulazioni, ecc., può causare l’uso di CPU alto.

Processi in background

I processi possono essere suddivisi principalmente in 2 categorie: processi di sistema e processi applicativi. I processi di sistema sono i processi necessari per mantenere il sistema in esecuzione. I processi di applicazione sono i processi che utilizzeresti per uno scopo specifico. Quando questi processi continuano a funzionare in background, consumano risorse della CPU.

Molti processi applicativi continuano a funzionare in background anche dopo aver chiuso la finestra dell’applicazione. Questo è meno probabile che accada su un server perché un server viene solitamente mantenuto e pulito periodicamente per avere solo i processi di cui ha bisogno, ma è ancora possibile.

Malware

Malware (Software dannoso) sono programmi utilizzati da attori malintenzionati per attaccare il sistema o per eseguire azioni illegittime sul sistema. Inizialmente, il malware non utilizza risorse CPU elevate per rimanere nascosto, ma quando iniziano a eseguire azioni dannose, causano un elevato utilizzo della CPU. Ho assistito a questo incidente in cui il malware era stato indotto in un server una settimana prima e un giorno ha iniziato a trasferire tutti i dati sensibili dal server al cloud storage. Quindi, questo malware non ha utilizzato molte risorse della CPU mentre stava impostando le cose e trovando dati critici. Ma una volta trovato tutto il necessario, c’è stato un enorme picco nell’utilizzo della CPU a causa del trasferimento dei dati.

Codice non ottimizzato

È comune avere codice personalizzato in esecuzione su server per attività specifiche. Se tali codici non sono ottimizzati, potrebbero finire per utilizzare molte risorse della CPU. I loop e la ricorsione non ottimizzati sono alcune delle cause più comuni per l’elevato utilizzo della CPU a causa del codice non ottimizzato.

Correzioni comuni per l’utilizzo elevato della CPU

Sulla base delle cause comuni precedentemente affrontate, diamo un’occhiata ad alcune delle correzioni comuni per l’utilizzo elevato della CPU.

Restart

Un riavvio del sistema è una soluzione per la maggior parte dei problemi del computer. Come aiuterebbe a ridurre l’utilizzo della CPU? Un riavvio chiuderebbe tutti i processi in background che potrebbero essere stati avviati a causa di alcune azioni, ma non ne hai più bisogno. Sarebbe anche terminare i processi zombie o altri processi che sono indefinitamente in esecuzione a causa di malfunzionamenti. Quindi riavviare il sistema pulirebbe tutti (almeno la maggior parte) i processi non necessari e ridurrebbe l’utilizzo della CPU.

Terminare i processi in background

Il riavvio del sistema potrebbe non essere fattibile soprattutto per i server. Quindi, dovrai gestire processi non necessari senza riavviare il sistema. Per fare ciò, è possibile elencare tutti i processi in esecuzione, identificare quali processi non sono necessari e terminarli. Questo è come sarebbe simile in task manager di Windows:

monitor di utilizzo della cpu del server

Un’altra correzione è quella di gestire i processi di avvio. Ci sono alcuni processi che sono configurati per l’avvio non appena il sistema si avvia. Alcuni di questi sono necessari e alcuni non lo sono. È possibile identificare tali processi e disabilitarli dall’avvio automatico. In Windows, puoi trovarli nella scheda “Avvio” nel task manager:

monitor di utilizzo della cpu del server

Anti-Malware

Il malware è pericoloso. Non solo in termini di utilizzo della CPU, ma in generale anche. Alcuni malware causano un elevato utilizzo della CPU e l’utilizzo di anti-malware potrebbe essere la migliore difesa contro tale malware. I moderni software anti-malware sono intelligenti e avanzati. Non solo possono identificare il malware nel sistema e eliminarli o metterli in quarantena, ma possono anche impedire al malware di entrare nel sistema. Quindi, utilizzando anti-malware, non solo sarà fissaggio elevato utilizzo della CPU, ma anche prevenire elevato utilizzo della CPU a causa di malware.

Ottimizzazione del codice

Se si identifica che il motivo dell’elevato utilizzo della CPU è dovuto al codice non ottimizzato, è necessario ottimizzarlo. Dovrai analizzare il codice e scoprire quale parte del codice sta consumando risorse della CPU e ottimizzarlo.

Aggiornamento della CPU

Se hai risolto tutti gli altri problemi e ottimizzato tutto e vedi ancora un elevato utilizzo della CPU, significa che il requisito della CPU è elevato. In questi casi, non c’è altra opzione che aggiornare le risorse della CPU.

Perché si dovrebbe monitorare l’utilizzo della CPU del server?

Un server può avere due tipi di lavori da completare ad alto livello: un lavoro dall’utente e un lavoro all’interno del sistema. Un lavoro da parte dell’utente è quando un utente ha richiesto un servizio o dati dal server. Diciamo che vai su YouTube e cerca qualcosa. Il server di YouTube deve recuperare tutti i video rilevanti per la tua ricerca e inviarlo come risposta alla tua richiesta. Questa transazione di dati utilizza il tempo della CPU.

Un server ha compiti diversi dalla semplice risposta agli utenti. Va da sé che la sua CPU viene utilizzato per eseguire il sistema operativo e servizi web. Ma a parte questo, i server possono essere utilizzati per eseguire alcuni script per elaborare i dati. Un esempio comune è l’esecuzione di Ansible playbook. Questi playbook possono eseguire attività anche senza che l’utente debba intervenire.

Gestione delle risorse e delle attività

Se l’utilizzo della CPU è basso, stai sprecando le tue risorse. E se l’utilizzo della CPU è molto alto, il sistema rallenta e potrebbe iniziare in ritardo. Non vuoi che uno di questi accada, motivo per cui è importante monitorare l’utilizzo della CPU del server. Il monitoraggio dell’utilizzo della CPU del server ti aiuta a capire quanto viene utilizzata la tua CPU. Questo vi aiuterà a decidere se è possibile rendere la CPU fare più posti di lavoro o aumentare le risorse per soddisfare la necessità.

Programmi di ottimizzazione

Il monitoraggio dell’utilizzo della CPU del server è stato molto vantaggioso per gestire le risorse e ottimizzare le attività. Ci sono stati casi in cui i programmi richiedono più tempo di quanto idealmente dovrebbero prendere. Quando vedi che l’utilizzo della CPU è più alto anche durante l’esecuzione di un programma breve e semplice, sai che c’è qualcosa di sbagliato nel tuo programma. Spesso, i programmi non sono efficienti a causa della scarsa pratica di programmazione. Il monitoraggio dell’utilizzo della CPU potrebbe aiutarti a trovare tali istanze e ottimizzare il codice. Quindi, monitorare l’utilizzo della CPU è come colpire due piccioni con una sola fava.

Ora che abbiamo finito con il “cosa” e il “perché” dell’utilizzo della CPU e abbiamo imparato quanto sia vantaggioso l’utilizzo della CPU del server di monitoraggio, passiamo alla parte “come”.

Come monitorare l’utilizzo della CPU del server

L’utilizzo della CPU non è qualcosa di simile al denaro che puoi risparmiare per un periodo di tempo e quindi usarlo quando vuoi. La CPU inutilizzata è una risorsa sprecata. Ecco perché tutti vogliono che l’utilizzo della CPU del server sia vicino al 100%. E per mantenerlo al suo meglio, potrebbe essere necessario fare qualche ritocco e mantenere l’aggiornamento del sistema. Per sapere cosa fare, è necessario conoscere lo stato corrente dell’utilizzo della CPU del server.

È possibile controllare l’utilizzo della CPU del server con un singolo comando. Se si dispone di un sistema operativo Windows, aprire il prompt dei comandi ed eseguire questo comando:

wmic cpu get loadpercentage

Dovresti vedere la percentuale di utilizzo della CPU come mostrato in questa schermata:

In base alle tue esigenze, puoi interrogare periodicamente l’utilizzo della CPU e archiviare i dati da qualche parte, quindi guardarli in un secondo momento. Oppure è possibile lo streaming di utilizzo della CPU in un cruscotto per monitorare in qualsiasi momento.

La maggior parte dei sistemi operativi è dotata di strumenti e utilità integrati per il monitoraggio dell’utilizzo della CPU. Ma questi strumenti hanno limitazioni e di solito sono troppo semplici. Nell’era attuale, abbiamo bisogno di funzionalità avanzate per gestire e lavorare sui dati di monitoraggio e ciò richiede la necessità di strumenti di monitoraggio avanzati. Quasi ogni servizio è online ora. E i server svolgono un ruolo importante nel rendere disponibili questi servizi. Non puoi permetterti di aspettare un paio d’ore per sapere che il tuo server è inattivo a causa dell’elevato utilizzo della CPU. È necessario monitorare continuamente l’utilizzo della CPU e altre metriche del server.

Monitorare continuamente

Controllare l’utilizzo della CPU del server in un punto nel tempo non è di grande utilità. Hai bisogno di una soluzione per monitorare continuamente l’utilizzo della CPU del server. Quasi tutti i sistemi operativi del server sono dotati di un monitor delle prestazioni in cui è possibile visualizzare l’utilizzo della CPU in qualsiasi momento. Quando si monitora l’utilizzo della CPU del server, è necessario cercare picchi, poiché improvvisi cambiamenti nell’utilizzo della CPU indicano che è accaduto qualcosa di straordinario.

Oltre a monitorare l’utilizzo della CPU in tempo reale, si desidera memorizzare questi dati in modo da poterli visualizzare e analizzare a intervalli diversi. Per ottenere il massimo dalle statistiche di utilizzo della CPU, è necessario raccogliere i dati di utilizzo della CPU a intervalli regolari (preferibilmente in tempo reale) generando registri e visualizzarli sotto forma di grafici. Abbiamo appena parlato di una metrica, ma non dimenticare che l’utilizzo della CPU del server non è l’unica cosa da monitorare. Per ottenere tutto ciò di cui hai bisogno in un unico posto, usa Scalyr.

Leave a Reply

Il tuo indirizzo email non sarà pubblicato.