Se si sta eseguendo un server per un’applicazione o solo la macchina locale, si desidera che il computer in esecuzione il suo meglio. Ecco perché dovresti assicurarti di monitorare l’utilizzo della CPU, del disco e della memoria del tuo computer. Monitorare cose come l’utilizzo della memoria e l’utilizzo del disco sono in realtà piuttosto facili. Quanto spazio su disco ti rimane? Il disco è frammentato? Avete abbastanza RAM per le applicazioni che si sta utilizzando? Stai regolarmente scambiando la memoria?
Queste sono domande facili a cui rispondere, e sono domande che dovresti chiedere., Ma alcune domande sono più complicate, soprattutto quando si tratta di metriche della CPU. Certo, ci sono metriche semplici come l’utilizzo complessivo della CPU. Ma se stai usando Linux, hai metriche più esoteriche (e talvolta più utili), come il carico della CPU. In questo post, stiamo andando a parlare di ciò che la metrica di carico della CPU in realtà significa, e come è possibile utilizzarlo per ottimizzare i server.
Carico della CPU rispetto all’utilizzo della CPU
La prima cosa da capire è che il carico della CPU non è la stessa cosa dell’utilizzo della CPU., Anche se potrebbero sembrare simili, sono molto diversi. L’utilizzo della CPU è una misura, in percentuale, di quanto tempo la CPU trascorre attivamente a calcolare qualcosa. Ad esempio, se si disponesse di un programma che richiedesse una potenza di elaborazione ininterrotta per 54 degli ultimi 60 secondi, l’utilizzo della CPU su un core sarebbe del 90%. Invece, se il programma richiedeva solo sei secondi di tempo di elaborazione su un core, l’utilizzo sarebbe del 10%.
La maggior parte delle aziende cerca di mantenere l’utilizzo della CPU dei propri server il più vicino possibile al 100%., La maggior parte dei server sono venduti da potenza di calcolo complessiva, e se il server è seduto solo al 30% di utilizzo della CPU, si sta pagando per troppa potenza del processore. È possibile eseguire il downgrade del processore a un livello inferiore, risparmiare denaro e non vedere alcuna riduzione della qualità delle prestazioni del server.
Carico della CPU
Carico della CPU è diverso. Invece di misurare la percentuale di tempo in cui la CPU sta lavorando, il carico della CPU misura quanti programmi stanno usando o aspettando un core del processore contemporaneamente. Un processore completamente inattivo avrebbe un valore di carico pari a 0., Nel nostro esempio precedente, avremmo tempi di caricamento di un minuto di .9 e .1, rispettivamente. E ‘ abbastanza intuitivo. Tuttavia, ciò che non è intuitivo sul carico della CPU è che un valore di 1 non è necessariamente una misurazione a pieno carico.
Invece, ciò che costituisce il carico “completo” della CPU dipende dal numero di thread del sistema operativo che vanta la CPU. La maggior parte delle CPU in questi giorni costituiscono più di un solo core della CPU, eseguendo più di un thread della CPU. Se la tua CPU ha quattro core, un carico della CPU di 1 non è una CPU a pieno carico. Invece, sarebbe solo un quarto caricato., Invece, il carico della CPU sarebbe considerato completo per la CPU se il valore di carico fosse 4, non 1.
Decifrare i carichi della CPU Linux
Eseguire un programma che visualizza i totali di carico della CPU Linux può essere un po ‘ confuso all’inizio. Se si esegue un comando come uptime o top, si potrebbe vedere un valore di carico della CPU che assomiglia a 1.68 0.55 5.91. Se non sai cosa stai cercando, questo sembra rumore. Per fortuna, questo è in realtà abbastanza facile da decifrare. Ci sono tre valori qui, e li guarderemo in sequenza.
Il primo valore è 1.68. Questo è il valore del carico della CPU durante l’ultimo minuto., Come abbiamo accennato prima, questa è una misura di quanti programmi stavano usando il tempo della CPU durante l’ultimo minuto. Quindi, durante l’ultimo minuto su questa macchina, c’erano in media 1,68 programmi che utilizzavano il tempo di elaborazione della CPU o che attendevano il tempo di elaborazione della CPU. Se si tratta di una CPU a thread singolo, significa che il computer è sovraccarico. Gli utenti stanno aspettando che i loro programmi vengano eseguiti sulla CPU e sperimentano prestazioni degradate. Se, invece, questo è un computer dual-core o un quad-core, gli utenti sono in grado di ottenere il tempo della CPU altrettanto rapidamente come ne avevano bisogno, durante l’ultimo minuto.,
Il secondo valore è 0.55. Questa è la misura negli ultimi 5 minuti. Come abbiamo discusso in precedenza, una misurazione inferiore a 1 significa che la CPU ha trascorso parte del tempo in quella finestra completamente inattiva. In questo caso, la CPU era inattiva per quasi la metà del tempo. Se stiamo ottimizzando la nostra CPU per fare costantemente qualcosa, non è un buon segno.
Il numero finale, 5.91, è una misura degli ultimi 15 minuti. Se stai usando una CPU a otto core, questo numero non è particolarmente scioccante. Se stai usando una CPU dual-core, un numero come 5.91 significa che la tua CPU è molto sovraccarica., Gli utenti sono regolarmente in attesa per il tempo della CPU, e sono probabilmente sperimentando prestazioni significativamente degradati.
Carichi CPU Unix vs. Linux
Se sei abituato a usare la misurazione del carico della CPU in Unix, alcuni di questi numeri potrebbero sembrarti un po ‘ alti. Questo perché Unix e Linux misurano il carico della CPU in modo diverso. Unix misura il carico della CPU espressamente come misura dei programmi che stanno attivamente utilizzando o in attesa di elaborazione della CPU. Linux misura le cose in modo un po ‘ diverso, e capire come è la chiave per una buona amministrazione del sistema.,
Linux misura il carico della CPU guardando entrambi i programmi che stanno attualmente utilizzando o aspettando il tempo della CPU oltre ai programmi che si trovano in stati di attesa. Ad esempio, un programma che è in attesa di una richiesta di rete, o per caricare qualcosa da un disco, non conterebbe per il carico della CPU su Unix. Su Linux, lo fa. Se questo è un approccio migliore o peggiore dipende dal tuo caso d’uso. Se stai cercando di misurare nient’altro che l’utilizzo complessivo della CPU, Unix fornisce un’interfaccia migliore., Ma se hai un programma bloccato per 30 secondi in attesa di una richiesta di rete, Linux te lo dirà. Unix non affiorerebbe mai quei dati.
Ottimizzazione dei carichi della CPU
Non c’è nessun proiettile d’argento per ottimizzare i carichi della CPU. È un processo che devi affrontare in modo olistico. Proprio come l’utilizzo della CPU, quando sei su un server vuoi essere vicino al 100%, ma non oltre. A volte, il processo di ottimizzazione dei carichi della CPU è piuttosto semplice. Forse il tuo server utilizzerà sempre e solo due thread contemporaneamente., In tal caso, ottimizzare i carichi del server non è più complicato di avere un processore dual-core. Potrebbe essere necessario un processore più veloce per assicurarsi che tali programmi completi in tempo, ma non avrai mai bisogno di più di due core.
La maggior parte dei sistemi in realtà non si limita a esattamente due thread attivi, tuttavia. La maggior parte dei server sono molto più complicati. E una delle vere sfide è mantenere il numero di core il più basso possibile, perché ciò consente di risparmiare denaro, senza andare troppo in basso e degradare le esperienze degli utenti. Potrebbe essere necessario ottimizzare il codice eseguito dal server., A volte, è necessario determinare quanto tempo di programma viene consumato in attesa di cose come le query di database. Potrebbe essere che hai davvero bisogno di aumentare il numero di core sul tuo processore. I server a collo di bottiglia possono avere una serie di cause e possono essere risolti in diversi modi.
Come è il carico della CPU?
Monitorare e ottimizzare il carico della CPU è una parte importante per ottenere il massimo per la memoria del server. Sfortunatamente, è anche un processo manuale che richiede molto tempo. Come notato, la maggior parte dei comandi Linux fornisce solo il carico della CPU per Windows di 15 minuti., Questa è una buona cosa; non vorresti finestre molto più ampie di così. Avresti difficoltà a ottenere informazioni utili da loro. Tuttavia, tenere d’occhio il carico della CPU su periodi di 15 minuti è una specie di mal di testa.
Fortunatamente, ci sono buoni strumenti per monitorare questo tipo di cose per te. Ad esempio, Scalyr può monitorare il carico della CPU semplicemente ingerendo alcuni registri. Non sarà solo ottenere una semplice stampa numerica., Invece, otterrai una bella visuale che mostra il carico complessivo della CPU nel tempo. Questo può essere particolarmente utile, poiché ti aiuta a individuare finestre specifiche che sono le più esigenti sulla tua CPU. Ottimizzare le prestazioni del server significa comprenderlo in dettaglio, e non solo ad alto livello.
Parte dell’essere un buon amministratore di sistemi significa capire il tuo server da ogni direzione. Sapere come interpretare il carico della CPU e come ottimizzarlo è una parte fondamentale per massimizzare l’investimento sul server della tua azienda., Prima di poterlo fare, devi capire qual è effettivamente il carico della CPU del tuo server. Non c’è giorno migliore di oggi per iniziare a monitorare il carico della CPU del server. Puoi iniziare a formulare un piano per l’ottimizzazione oggi.
Questo post è stato scritto da Eric Boersma. Eric è uno sviluppatore di software e responsabile dello sviluppo che ha fatto di tutto, dalla sicurezza IT nel settore farmaceutico alla scrittura di software di intelligence per il governo degli Stati Uniti alla creazione di team di sviluppo internazionali per organizzazioni non profit., Ama parlare delle cose che ha imparato lungo la strada, e gli piace ascoltare e imparare dagli altri pure.