Potete aiutarmi con la mia pianificazione della capacità?


132

Questa è una domanda canonica sulla pianificazione della capacità

Relazionato:

Ho una domanda sulla pianificazione della capacità. La community Server Fault può aiutare con quanto segue:


  • Di che tipo di server ho bisogno per gestire un numero di utenti?
  • Quanti utenti può gestire un server con alcune specifiche ?
  • Sarà un po 'di configurazione del server essere abbastanza veloce per il mio caso d'uso ?
  • Sto costruendo un sito di social network: di che tipo di hardware ho bisogno?
  • Di quanta larghezza di banda ho bisogno per alcuni progetti ?
  • Quanta larghezza di banda utilizzerà un numero di utenti in alcune applicazioni ?

Risposte:


97

La community Server Fault generalmente non può aiutarti con la pianificazione della capacità - la migliore risposta che possiamo offrire è "Benchmark del tuo codice su hardware simile a quello che utilizzerai in produzione, identifica eventuali colli di bottiglia, quindi determina la quantità di carico di lavoro del tuo l'hardware corrente è in grado di gestire e / o la potenza hardware necessaria per gestire il carico di lavoro di destinazione " .


Ci sono una serie di fattori in gioco nella pianificazione della capacità che non possiamo valutare adeguatamente su un sito di domande e risposte:

  • I requisiti del tuo particolare codice / software
  • Risorse esterne (database, altri software / siti / server)
  • Il tuo carico di lavoro (picco, media, in coda)
  • Il valore aziendale delle prestazioni (analisi costi / benefici)
  • Le aspettative di rendimento dei tuoi utenti
  • Eventuali accordi / obblighi di livello di servizio che potresti avere

Fare un'analisi adeguata su questi e altri fattori va oltre lo scopo di un semplice sito di domande e risposte: richiedono conoscenze dettagliate sul proprio ambiente e requisiti che solo il team (o un consulente adeguatamente compensato) può raccogliere in modo efficiente.


Alcuni assiomi di pianificazione della capacità

  1. La RAM è economica
    Se ti aspetti che la tua applicazione utilizzi molta RAM, dovresti inserire quanta RAM puoi permetterti / adattare.
  2. Il disco è economico
    Se si prevede di utilizzare molto disco, è necessario acquistare unità di grandi dimensioni, molte.
    L'archiviazione SAN / NAS è meno economica e di solito dovrebbe essere specificata grande piuttosto che piccola per evitare costosi aggiornamenti in seguito.
  3. I carichi di lavoro crescono nel tempo
    Supponiamo che le tue esigenze di risorse aumentino.
    Tenere presente che l'aumento potrebbe non essere simmetrico (CPU e RAM potrebbero aumentare più rapidamente del disco) e potrebbe non essere lineare.
  4. L'elettricità è costosa
    Anche se la RAM e i dischi sono diminuiti notevolmente di prezzo, il costo dell'elettricità è aumentato costantemente. Tutti quei dischi e RAM extra, per non parlare della potenza della CPU, aumenteranno la tua bolletta elettrica (o la bolletta che paghi al tuo fornitore). Pianificare di conseguenza.

1
Dovresti lasciar perdere e usare l'integrazione per parti!
Gilles,

+1. E la RAM, come suggerisci nell'assioma n. 1, è una di quelle cose che ha enormi vantaggi. Ad esempio, aumenta la capacità di utilizzare meglio la memorizzazione nella cache, il che a sua volta consente di eseguire meno query sul database, il che a sua volta alleggerisce il carico sul disco e sulla CPU. Sono spesso frustrato dai provider di hosting che offrono una CPU veloce con i loro server e una quantità minima di RAM.
Steve Wortham,

31
Aggiungo a questo: la capacità del disco è economica. Le prestazioni del disco diventano costose. Soprattutto se vediamo una crescita delle dimensioni del disco nell'arco di 10 anni, ma le leggi della fisica non sono cambiate. La regola empirica che uso (ad oggi; giugno 2014) è quella per prestazioni ottimali: 75 IOP per mandrino su SATA, 200 IOP per mandrino su FC e 1500 IOP per SSD. Le unità SATA di grandi dimensioni offrono un rapporto I / O veramente scarso per gigabyte.
Sobrique,

A metà del 2019 nessuno dovrebbe più acquistare mandrini.
Robert Harvey,

@RobertHarvey nessuno dovrebbe più acquistare i mandrini SAS . Ottenere la capacità per i server in scala petabox richiede ancora molte unità SATA o si finisce per pagare molto.
Mikko Rantalainen,

44

Pianificazione del conteggio delle macchine virtuali

Quando si tratta di capire quante VM dovresti pianificare su un singolo host, in realtà non ci sono davvero buone regole pratiche. In effetti, ce n'è solo uno, ed è solo un bene:

I conteggi di macchine virtuali sono generalmente limitati dalla RAM, tranne quando non lo sono.

Che non è terribilmente utile. Se quelle VM eseguiranno applicazioni con CPU bassa, il tuo limiter sarà basato sulla RAM. Ogni piattaforma VM ha le proprie capacità di sovrascrivere la RAM, quindi non è facile come TOTAL_RAM / Per-VM-RAM = MachineCount, ma quel numero è un buon elemento di pianificazione.

Ma cosa succede se le tue macchine virtuali stanno facendo cose oltre allo slinging di pacchetti a bassa CPU?


Il conteggio delle macchine virtuali è limitato da sette risorse discrete disponibili per la macchina host:

  • Hypervisor VMware, Xen, HyperV, KVM, qualunque cosa. Ognuno ha le proprie funzionalità che incidono sul conteggio. Alcuni sono molto bravi nella deduplicazione delle pagine di memoria, altri non così tanto. Alcuni non consentono l'iscrizione eccessiva della capacità della CPU, altri lo fanno.
  • Velocità core della CPU Limita le prestazioni massime a thread singolo che una VM sarà in grado di eseguire. 36 core di una CPU da 1,8 GHz possono essere 64,8 GHz di CPU su un host, ma nessun singolo thread verrà eseguito più velocemente di 1,8 GHz.
  • Conteggio core della CPU Questo, con la velocità del core, descrive il limite massimo delle prestazioni della CPU che puoi sperimentare.
  • RAM di sistema Come descritto sopra, questo limita il numero di VM che è possibile eseguire. Alcuni hypervisor sono migliori di altri in cose come la deduplicazione di pagine di memoria, quindi se si eseguono 100 macchine virtuali identiche, è possibile comprarne molte di più su tali sistemi di deduplicazione rispetto a se si eseguessero 100 macchine virtuali completamente diverse.
  • Dimensioni disco Ogni immagine del sistema operativo occupa una certa quantità di spazio. Hai bisogno di spazio sufficiente per archiviare tutto. Pertanto, la dimensione del disco pone un limite massimo al numero di macchine virtuali che è possibile ospitare.
  • Larghezza di banda I / O Il disco sottostante le macchine virtuali ha un massimo su quanti I / O al secondo è in grado di gestire. Se ci si lancia troppo, i sistemi si impantaneranno in attesa del completamento dell'I / O. Ciò pone un limite massimo al numero di VM che utilizzano I / O che è possibile eseguire.
  • Larghezza di banda di rete Per le macchine virtuali che utilizzano la rete, la larghezza di banda di rete disponibile metterà un limite al numero di macchine virtuali che è possibile eseguire su un determinato host.

Tutti questi possono essere la cosa su cui inciampare, tutto dipende da cosa stai facendo con le tue VM. Alcune cose da ricordare:

  • Non esiste un sistema generico.
  • Non esiste un server web generico , dal momento che il codice dell'applicazione può essere eseguito da un servizio in stile CDN a mala pena , fino a roba di grandi dimensioni come la transcodifica video.
  • Non esiste un server di database generico . Questi possono essere eseguiti da piccoli sistemi utilizzati solo per il monitoraggio dello stato della sessione, a sistemi molto grandi.

Per capire quante VM è possibile impacchettare in un sistema host, è necessario sapere come funzionano i sistemi e cosa richiedono per funzionare correttamente. Una volta che lo sai, puoi quindi fare la pianificazione dei conteggi. E ancora meglio, scopri quanto è necessario creare i tuoi sistemi host!


soprattutto, utilizzare i sistemi basati su VM su due server fisici separati con VM non associata. ciò consente guasti hardware senza perdita dell'intero sistema. I VM possono spostarsi tra server identici senza perdita di dati. solo le sessioni vengono perse, quindi ricostruite. personalmente, esternalizzerei a una società di hosting che offre questi servizi (google o amazon). sono costosi ma molto meno che gestirli da soli.
Random-IT

2
La cosa che ho visto spesso sottodimensionato nelle implementazioni di VM è l'I / O del disco. Molte persone comprendono lo spazio su disco, la velocità della CPU e la memoria. Si dimenticano delle prestazioni del disco.
Dan Pritts,

6

Assicurati di porre la domanda giusta.

  • I computer sono economici
  • Le esigenze future sono molto difficili da prevedere
  • Pianifica come ridimensionare, non cosa acquistare in anticipo

Se non sai di cosa avrai bisogno, ciò implica che non ti serve molto. Se hai un sito Web caldo, probabilmente hai anche un team operativo che sa di quanta ram, disco, io, rete ecc ... ha bisogno della tua app. Se sei nella fase di sogno, dovresti iniziare con il tuo desktop e salire di livello.

Assicurati di avere un'idea di come ridimensionerai quando le cose si ingrandiranno. Puoi aggiungere altri server dietro il bilanciamento del carico? Puoi frammentare il server Redis?

Inoltre, avere il proprio data center fa schifo. Un data center (anche se è solo un computer) è una distrazione dal tuo scopo reale. Non puoi semplicemente comprare un computer, accenderlo e andartene. Hai bisogno di aria condizionata, filtraggio dell'aria, alimentazione affidabile, internet affidabile, backup, pezzi di ricambio, spazio fisico per crescere, capacità di energia per crescere, cavi di alimentazione che non si inciampano e un miliardo di altri mal di testa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.