2009-02-11 15 views
5

In molte architetture del sistema Enterprise, diventa imperativo dimensionare l'hardware in base ai requisiti del carico di lavoro della concorrenza &. Per lo più i produttori di prodotti forniranno i propri fogli di dimensionamento hardware in cui basta semplicemente inserire le metriche e verranno visualizzati i dettagli del numero di server, della RAM necessaria e così via. Tuttavia, quando il sistema viene sviluppato utilizzando componenti software open source, tali linee guida non sono prontamente disponibili.Dimensionamento hardware - Regole del pollice

Ho bisogno di fare il dimensionamento hardware di un sistema. Il sistema è scalabile orizzontalmente in modo che il volume di traffico in crescita possa essere sistemato aggiungendo più nodi. Per cominciare, il sistema avrà due nodi di bilanciamento del carico HAProxy. Dietro i load balancer ci sono i server Web che servono pagine HTML e javascript. Esistono più nodi che ospitano server per i servizi Web RESTful. Ci sono alcuni nodi di Cassandra sul back-end. Abbiamo una vaga idea del traffico o degli utenti concorrenti.

Quale dovrebbe essere il mio approccio per il dimensionamento dell'hardware? Ci sono delle linee guida generali?

risposta

6

Questa è forse una delle domande più difficili a cui rispondere. Stavo osservando questo thread con interesse per vedere cosa avrebbero potuto pensare gli altri.

La risposta deve essere presa considerando la piattaforma hardware, il sistema operativo, il server delle applicazioni, il server di database, ecc. Su cui il prodotto viene eseguito, nonché la relativa complessità del prodotto. Un sito che serve HTML statico si ridimensiona a molti più utenti rispetto a un sistema OLTP.

Conoscere le capacità innate della piattaforma di destinazione è fondamentale. Sapendo che ASP.NET supporta 12 thread/CPU in esecuzione simultanea (configurazione predefinita), è possibile utilizzare la cache di output per ridurre notevolmente la concorrenza, oppure più di 3.000 richieste/sec richiedono Gigabit Ethernet per il server di database, ecc. , sapere quali leve devi tirare, ecc.

I fogli di dimensionamento hardware del fornitore rispecchiano gli sforzi significativi compiuti nell'esecuzione di test delle prestazioni e della capacità del loro prodotto. Questa può essere una vendita difficile per le applicazioni in cui si sta svolgendo lo sviluppo interno o lo sviluppo non profit.

In breve, il tuo obiettivo dovrebbe essere quello di iniziare a produrre POC delle aree più complesse del tuo prodotto e quindi iniziare a investire nelle prestazioni in corso e nella pianificazione della capacità delle iterazioni.

Se ciò non avviene, è probabile che si verifichi un errore: mancata esecuzione, mancata pianificazione della cpacità o fallimento aziendale, gli utenti non sono mai venuti.

Mi piacerebbe avere una risposta migliore - Sono anch'io con questa stessa sfida.

0

Se si ha il lusso di non dover distribuire a tutti i 1.000 utenti il ​​primo giorno, sarei tentato di utilizzare la virtualizzazione per risolvere questo problema. Prima costruivo i server su bare-metal e verificai che funzionassero come necessario. Quindi utilizzare qualsiasi convertitore di software P2V di cui si desidera ottenere il software VM per convertire l'immagine del disco da fisico a virtuale. Quindi rimuoverei i dischi originali del server e li memorizzerei in modo sicuro, inseriremo alcuni nuovi all'interno, installo l'hypervisor di scelta, aggiungo la VM convertita, accendilo, aggiungi gli strumenti para per la tua VM/OS e vedi come vai avanti . Se il tuo server funziona, ciò che ti sei dato è la portabilità. Puoi iniziare con un centinaio di utenti, misurare il carico, estrapolare e formulare alcune ipotesi. Quindi aggiungi altri utenti, verifica le tue ipotesi e così via. Se si arriva a 1.000 utenti e c'è spazio per risparmiare, allora si può stare con l'ambiente virtuale (pro: buone opzioni di DR, portabilità, contro: si perdono alcune prestazioni) o si torna alla build bare metal sapendo che sarà gestire il lavoro. Se il tuo barattolo si sta surriscaldando, puoi spostare la VM su hardware più grande/migliore/più veloce molto facilmente o copiare la VM su un altro host di macchine virtuali e cluster come quello.

So che non risponde alle tue domande direttamente, ma non sono sicuro che ci siano delle regole pratiche per questo, poiché ci sono enormi fluttuazioni nel carico per utente in base a tanti fattori.

Se hai un mese o giù di lì fino a quando non devi ordinare i tuoi server potresti prendere in considerazione i nuovi Xeon basati su Nehalem: valgono davvero la pena aspettare.

+0

Grazie Chopper3. Questa è stata una buona panoramica sull'utilizzo della virtualizzazione per costruire in modo adattativo l'infrastruttura richiesta. Tuttavia, quello che sto cercando sono metriche di base facilmente disponibili sulla capacità di gestione degli utenti, sul supporto di concorrenza, sul carico di lavoro, ecc. Per varie famiglie di processori/server. – gnlogic

0

punti seguenti possono aiutare a

  • scelto un provvedimento per il dimensionamento
  • Stima del carico di lavoro Stima CPU
  • Dimensionamento modello per l'elaborazione in linea (Applicazione e DB server) Stima
  • Dimensione RAM Stima hard Dimensione disco
  • Stima dimensionamento larghezza di banda di rete
  • Stima pipistrello ch Processing Size Check
  • hardware e software vendor circa loro trattamento