Penso che molti amministratori di sistema temono la pianificazione della capacità o semplicemente pensino che non sia necessaria. Primo, non c'è motivo di temere la pianificazione della capacità (non è scienza missilistica); e in secondo luogo, la pianificazione della capacità è necessaria al 100%. In passato, gli amministratori di sistema dovevano occuparsi della gestione prendendo decisioni radicali per aggiungere capacità e migliorare le prestazioni, inserendo nuovi sistemi nel mix o aggiungendo CPU, RAM o storage più veloce. Di solito, ma non sempre, il problema persiste oltre gli aggiornamenti e la capacità aggiuntiva. Ma il qualificatore "solitamente" è la parte dell'equazione che mette in difficoltà sia gli amministratori di sistema che i gestori, al punto che nessuno vuole occuparsi della pianificazione e dell'amministrazione della capacità e delle prestazioni effettive.
Questo problema non deve essere una lotta. In questo articolo, presento cinque cose che devi sapere per iniziare a pianificare la capacità di Linux. Puoi anche applicare queste linee guida a qualsiasi ambiente:Linux, Windows, Unix o una versione ibrida di questi.
Nozioni di base sulla pianificazione della capacità
Quando parli di capacità, stai davvero discutendo di prestazioni. Capacità e prestazioni sono sempre menzionate insieme. È necessario misurare e monitorare le prestazioni per eseguire qualsiasi tipo di pianificazione della capacità. Capacità significa la capacità di elaborare e archiviare i dati senza colli di bottiglia o impatto sull'utente finale. Il più delle volte, gli amministratori di sistema pensano alle prestazioni in termini di elaborazione dei dati per siti Web, database o applicazioni. Ma non è qui che finisce la performance. Pensa alle prestazioni di backup e ripristino. I backup richiedono compressione, deduplicazione, trasferimento da disco a disco o trasferimento in rete. E non dimenticare che lo spostamento di macchine virtuali da un host all'altro richiede capacità di elaborazione, storage E rete.
Il tuo asporto qui è questo:capacità e prestazioni sono troppo strettamente correlate per separarle in conversazioni diverse. Diamo un'occhiata ai passaggi di questo processo.
Primo:ottieni una linea di base
Non importa se i tuoi sistemi sono nuovi di zecca o vecchi di tre anni, devi stabilire una linea di base prima di poter iniziare la pianificazione e la proiezione della capacità. Stabilire una linea di base richiede un po' di tempo perché una linea di base non è un'istantanea, è piuttosto una visione a lungo termine delle prestazioni. Utilizzare almeno un mese di riferimento per ciascun sistema. Un mese di dati dovrebbe darti la gamma di prestazioni da cui puoi pianificare e prevedere le esigenze di capacità.
Ci sono tre numeri che devi esaminare dopo aver raccolto la data preliminare:carico o utilizzo di picco, basso e medio. Dopo aver analizzato questi dati, ti renderai conto del motivo per cui non puoi fare affidamento su uno snapshot del carico per guidarti attraverso il processo di pianificazione della capacità. Una linea di base ti dice a che punto sei in questo processo.
Il prossimo set di dati che devi considerare è la capacità attuale. È necessario valutare le informazioni sulla capacità di RAM, CPU, disco e rete. Quindi, devi scoprire qual è la tua capacità massima per ciascun sistema. La differenza tra la capacità attuale e quella massima ti dà la tua capacità di crescita. Si consideri, ad esempio, un sistema con la seguente configurazione:due CPU Quad-core, 128 GB di RAM, due dischi da 1 TB in RAID 1 (con mirroring) e un'interfaccia di rete Ethernet dual Gb. La capacità massima per questo sistema, quindi, è quattro CPU quad-core, 512 GB di RAM, sei dischi e due slot PCIe aperti per schede di espansione come le schede di interfaccia di rete (NIC) Gb Ethernet.
CPU | 2 - Quad core | 4 - Quad core |
RAM | 128 GB | 512 GB |
Disco | 2 dischi - 1 TB - RAID 1 | 6 dischi |
NIC | 2 GbE (doppio) | 6 GbE (doppio) - 10 GbE (quadruplo) |
Ora, confronta i due. Questo sistema ha molta più capacità disponibile per aumentare la potenza di calcolo, la rete e lo storage. Questi parametri di capacità hardware più i dati sulle prestazioni del tuo mese sono i tuoi punti di partenza per prevedere la necessità di capacità aggiuntiva, sia sotto forma di aggiornamenti del sistema che di un aggiornamento completo della tecnologia.
Secondo:imposta il monitoraggio delle prestazioni
Se non disponi già di un pacchetto di monitoraggio delle prestazioni come sysstat
installato, puoi farlo facilmente dai repository predefiniti. Verifica se hai sysstat
:
$ rpm -qa |grep sysstat
Se non lo hai, installalo con:
$ sudo yum -y install sysstat
Esegui i due comandi seguenti per eseguire sysstat
raccoglitori di dati di 's all'avvio e quindi per avviare sysstat
raccoglitori di dati sul tuo sistema:
$ sudo systemctl enable sysstat sysstat-collect.timer sysstat-summary.timer
$ sudo systemctl start sysstat sysstat-collect.timer sysstat-summary.timer
Il sysstat
il pacchetto consiste in una manciata di comandi che riportano le statistiche sulle prestazioni su una varietà di sottosistemi e servizi da CIFS/Samba al disco alle attività Linux. Il comando più utile è sar
, Reporter attività di sistema. Il sar
comando fornisce un elenco in esecuzione delle statistiche sull'attività del sistema. Qualsiasi utente può emettere il sar
comando per visualizzare le statistiche:
$ sar
Linux 4.18.0-80.7.1.el8_0.x86_64 (rhel) 08/14/2019 _x86_64_ (1 CPU)
12:00:24 AM CPU %user %nice %system %iowait %steal %idle
12:10:01 AM all 0.22 0.00 0.43 0.01 0.00 99.33
12:20:32 AM all 1.18 0.05 1.24 0.12 0.00 97.41
12:30:01 AM all 0.27 0.00 0.49 0.01 0.00 99.23
12:40:32 AM all 0.20 0.00 0.38 0.00 0.00 99.41
12:50:32 AM all 0.18 0.00 0.36 0.01 0.00 99.46
Per impostazione predefinita, le statistiche di sistema vengono raccolte ogni 10 minuti. Il sar
comando mostra le statistiche generali del sistema, ma l'opzione statistica molto più utile ed estesa fornisce tutto sar
ha da offrire, utilizzando il -A
opzione:
$ sar -A
L'output è troppo lungo per essere pubblicato qui, ma tieni presente che vedrai tutte le statistiche per ogni sottosistema e servizio che sar
raccoglie. Si prega di fare riferimento a sar
pagina man per ulteriori informazioni e dettagli su statistiche specifiche e relative opzioni.
Terzo:analizzare e tracciare i dati
Il sysstat
collector raccoglie le informazioni di sistema e le conserva in /var/log/sa . I numeri dei file sono il giorno del mese da cui sono stati raccolti. Avrai bisogno di un metodo per raccogliere e analizzare questi dati. Suggerisco Orca di Blair Zajac. Suggerisco inoltre di trasferire i dati raccolti a un repository centrale per l'elaborazione e la visualizzazione. In altre parole, non elaborare le tue statistiche sui tuoi sistemi di produzione perché influiranno negativamente sulle tue statistiche sulle prestazioni e distorceranno i tuoi risultati.
Orca non è banale ma non terribilmente difficile da allestire. Alcuni anni fa ho scritto un articolo che ti aiuta a iniziare a visualizzare le statistiche sul rendimento su un server web con Orca. Orca non viene aggiornato da un po', ma funziona ancora come mostrato nella documentazione e nel mio articolo.
Quarto:imposta le soglie di rendimento
Per ciascuno dei tuoi sistemi di produzione o monitorati, devi rispondere alla domanda:"Quanto è occupato?" Non esiste una risposta perfetta e probabilmente modificherai i numeri a un certo punto per ridurre il numero di notifiche che ricevi dal superamento di tali soglie. Ad esempio, supponiamo che tu abbia cinque server Web con bilanciamento del carico per fornire servizi Web ai tuoi clienti esterni e che sia necessario monitorarne le prestazioni per prevedere quando aggiungere più sistemi alla farm, o quando puoi prenderne uno o più offline.
Come test preliminare, imposti la soglia della CPU all'80% di occupato per tutti e cinque i server. Due volte al giorno, ricevi avvisi e-mail che i tuoi sistemi hanno superato l'80%. Il problema? Ricevi avvisi ogni cinque minuti da tutti e cinque i server, per due ore, due volte al giorno. Questa è un'indicazione che le soglie sono impostate troppo basse a meno che non ti piaccia ricevere tutte quelle notifiche.
È necessario esaminare le prestazioni durante i periodi di punta per decidere dove impostare la soglia e se è necessario o meno aggiungere più sistemi alla farm per ridurre l'utilizzo complessivo. Dopo aver esaminato i numeri, si nota che l'utilizzo non supera mai l'87% per qualsiasi ora di punta su qualsiasi server. Decidi quindi di impostare la soglia della CPU al 90% e continuare a far controllare il monitor ogni cinque minuti, ma abbassi la soglia di avviso fino a mantenere il 90% per più di due ore. Ciò significa che se l'utilizzo della CPU di un sistema supera il 90% per più di due ore, riceverai una notifica. Tale soglia per questo ambiente è ragionevole e gestibile. Il tuo livello di tolleranza per l'aggiunta di un nuovo sistema alla farm, dopo alcuni mesi di osservazione, è CPU superiore al 95% per più di due ore.
Questo è il processo per determinare quanto occupato è occupato e i livelli di tolleranza per ciascun servizio. Sembra arbitrario, ma non lo è, perché stai osservando i dati su base continua e apportando modifiche e decisioni in base alle tue osservazioni. L'utilizzo del 90% per due ore non è eccessivo, ma non vuoi superare quel livello perché gli utenti iniziano a subire lunghi tempi di attesa quando estraggono i dati dal tuo sistema.
Quinto:avviso sul rendimento
Ho discusso degli avvisi ma devo ancora darti una soluzione per la creazione e la gestione di eventi (avvisi). Potresti creare qualcosa di semplice come uno script Bash per controllare sar
dati per i numeri di utilizzo, ma puoi anche implementare una soluzione commerciale o anche una via di mezzo. Non ti consiglierò una soluzione di avviso, ma sono disponibili una manciata di applicazioni di monitoraggio e avviso open source. La maggior parte sono basati su agenti, quindi aggiungi l'installazione e la manutenzione di un altro servizio al tuo elenco di compiti amministrativi.
Come affermato nella sezione precedente, dovrai regolare le tue soglie e tolleranze per evitare di impazzire con gli avvisi, soprattutto se tali avvisi vengono visualizzati come messaggi sul tuo telefono. Vuoi essere avvisato solo se qualcosa non funziona o ha problemi e richiede la tua attenzione per una risoluzione.
Il dilemma della pianificazione della capacità
Il dilemma della pianificazione della capacità e del monitoraggio delle prestazioni in questi giorni è che invece di acquistare diversi rack di server, probabilmente stai affittando l'hardware del tuo server o stai utilizzando una sorta di soluzione cloud in cui capacità e prestazioni sono gestite dinamicamente da regole aziendali . I noleggi hardware di tre anni impongono di eseguire un aggiornamento dell'hardware ogni tre anni, indipendentemente dal fatto che sia necessario o meno. Il tipo di policy hardware che hai nella tua azienda altera sicuramente il modo in cui pianifichi i cambiamenti di capacità.
Se noleggi, dovrai comunque eseguire il monitoraggio delle prestazioni e pensare alla capacità, perché se hai hardware sottodimensionato o poco acquistato, dovrai sicuramente saperlo. Se acquisti, dovresti considerare la pianificazione delle prestazioni e della capacità su base continuativa di cinque anni. Dico cinque anni perché manager e imprenditori non vogliono sostituire l'hardware ogni tre anni se lo stanno acquistando. È probabile che stiano utilizzando gli acquisti di hardware come un bene ammortizzato.
Il trucco con le risorse acquistate è che non vuoi sprecare capacità acquistando troppo e troppo presto. Ci sono molte storie che circolano su persone che acquistano sistemi top di gamma solo per aggiornarli in cinque anni senza mai sfruttare la capacità di quei sistemi, e dopo cinque anni sono troppo vecchi per preoccuparsi di aggiornare e aggiornare. La linea di fondo per l'acquisizione di nuovo hardware noleggiato o acquistato consiste nell'acquistare tenendo conto della crescita e quindi trarne vantaggio prevedendo un budget per gli aggiornamenti in base all'utilizzo. In altre parole, acquista ciò di cui hai bisogno, aggiorna se necessario e sfrutta appieno le tue risorse hardware prima del prossimo ciclo di aggiornamento.
Riepilogo
La pianificazione della capacità e il monitoraggio delle prestazioni collaborano per fornire un quadro completo del ciclo di vita dell'hardware e del software. È importante prendersi del tempo e impegnarsi per impostare il monitoraggio e gli avvisi e per analizzare i dati. Troppo spesso, amministratori di sistema impegnati impostano soluzioni elaborate per il monitoraggio e poi le ignorano. Trova un modo per trovare un equilibrio tra l'essere impazziti dagli avvisi sulle prestazioni e non vedere mai quello che si traduce in tempi di inattività prolungati. La pianificazione della capacità ti aiuta anche a risparmiare denaro ridistribuendo i servizi da sistemi sovrautilizzati a sistemi sottoutilizzati.