Di che tipo di server ho bisogno per gestire 10 milioni di richieste e query mySQL al giorno? [chiuso]


23

Sono un principiante dell'amministrazione del server e sto cercando un potente servizio di hosting per ospitare il mio nuovo sito Web. Questo sito Web è fondamentalmente un back-end di un gioco online mobile e:

  • gestire fino a 10 milioni di richieste HTTPS e query mySQL al giorno
  • memorizzare fino a 2000 GB di file sul disco rigido
  • trasferire probabilmente 5000 GB di dati in entrata e in uscita al mese
  • funziona su PHP e mySQL
  • hanno 10 milioni di record nel database mySQL, per ogni record ci sono 5-10 campi, circa 100 byte ciascuno

Non so davvero di che tipo di server ho bisogno per gestire questi requisiti, la mia domanda è:

  1. Di quale CPU / RAM ho bisogno per un server o VPS dedicato?
  2. Quali società di hosting sono in grado di offrire questo tipo di server o VPS dedicati?
  3. Che dire del cloud computing? Ho studiato Amazon EC2 ma mi sembra complicato. E ho contattato Rackspace ma stranamente hanno detto che Cloudsites non è adatto alle mie esigenze. Mi chiedo se ci sia un'altra società di cloud hosting.
  4. Qualche altro metodo alternativo?

ci siamo aggirati con 2 server Linux con 8 concerti di ram, mysql è un cluster mysql e il DB è archiviato in memoria velocemente, cpu non è mai molto se si usa una buona distribuzione e il disco dovrà solo essere usato scattare istantanee orarie ti dà ridondanza in caso di fallimento. inoltre potresti voler installare mysqltuner in modo da poter tenere d'occhio gli indici ecc. e fare il miglior uso di tutto e anche aggiungere un sacco di indici e tenere un registro su query lente, dato che per il web questo può essere davvero economico basta aggiungere un carico bilanciamento sul fronte per dividere il traffico
meno 4

Perché non utilizzare un servizio cloud? Azure, Amazon, RackSpace, GoGrid, Heroku?
bbqchickenrobot,

Risposte:


33

Un desktop economico?

Entriamo in matematica.

  • 10 milioni di richieste.
  • Ciò si suddivide in 416667 richieste all'ora.
  • Ciò si suddivide in 6944 richieste al minuto.
  • Ciò si suddivide in 116 richieste al secondo.

Raddoppiamo quello (carico di picco) e parliamo di un carico che un desktop quad core economico può gestire SE le query sono abbastanza semplici e non dici davvero quanto siano complesse.

  • 5000 GB al mese sono banali: sul serio, si applica la stessa matematica.
  • Ciò si suddivide in 208 GB / giorno
  • Questo si scompone a 8 GB / ora
  • Ciò si scompone a 148 MB / minuto
  • Ciò si suddivide in 2,5 MB / secondo, 25 Mb. Doppio per picco - 50Mbit, banale per qualsiasi centro di hosting. Ti costerà, però.

  • Conservare 2000 GB sul disco rigido. Si tratta di dischi rigidi 2x2000 GB in un RAID? A meno che non sia: per il database, ha un sacco di IO complessi, quindi è qualcosa tra una dozzina di dischi e un LOTTO di dischi SAS da 15.000 RPM da 73 GB in un RAID 10 (circa 60 dischi) per ottenere l'I / O necessario - questo la domanda non risponde senza MOLTE ulteriori informazioni sui modelli di accesso ai dati.

  • Esegue PHP e MySQL - Il mio telefono cellulare può farlo;) La domanda è quanto sia complessa l'applicazione. MySQL POTREBBE o NON PUO 'essere una soluzione accettabile qui, BTW l. - ciò richiederebbe ulteriori test. C'è una ragione per cui alcune persone usano ancora altri database commerciali più grandi.

  • Di quale CPU / RAM ho bisogno per un server dedicato o VPS?

Si direbbe che dipende dalla logica (quanti calcoli nella parte PHP, intelligenza o mancanza di programmatori e molte altre domande.

Scherzi a parte, questa è un'installazione non banale. Fai in modo che alcuni specialisti lo esaminino.

Fondamentalmente devi scendere e fare i compiti. Molte domande non rispondono in questo modulo. Soprattutto perché non sembra che ti interessi dei tuoi dati ...

  • I backup?
  • Nessun piano di emergenza? Voglio dire, i server muoiono - quindi sei a posto con il sito inattivo da giorni mentre la sostituzione è configurata?

grazie per la tua risposta. il php è semplice, immagino che l'onere principale sia su mySQL, ho testato alcune query mySQL sul mio laptop (Core2 Duo) con WAMP su Windows. con 10 milioni di record in mySQL, in media ogni query costa 0,1 secondi. quanto più forte con Quad Core sarà la gestione delle query mySQL?
Calvin,

2
Dimentica il quad core. Il tuo laptop SUCCHIA in IO - e IO è il luogo in cui i database sono limitati. Hai UN disco rigido, cioè LENTO e ROBUSTO (latop). I server utilizzano MULTIPLE hard disk FAST (ma non robusti). Uso un SQL Server quad core da MS e posso gestire più di 500 batch al secondo su selezioni semplici (un batch è uno selezionato) senza massimizzare la CPU - ma ottengo MOLTA attività del disco su un sottosistema di dischi che è probabilmente più di 30 volte più veloce della tua (e questo non è ancora impressionante). I dischi sono il limite. Più una corretta programmazione.
TomTom

1
Il tuo traffico SSL dovrà essere crittografato / decrittografato, potresti scaricarlo su un bilanciatore ed eseguire un proxy inverso su un normale server http. Questo dovrebbe mantenere bassa la latenza. puoi anche fare la crittografia anche nell'hardware ....... en.wikipedia.org/wiki/SSL_acceleration se il budget non è un problema per il tuo database usa ramsan.com/success/ccpgames.htm
The Unix Janitor

7

Per aggiungere un po 'della mia esperienza che può essere utile:

  • Come accennato da TomTom, è difficile / impossibile fornire specifiche esatte in quanto dipende dal design e dall'implementazione dell'applicazione. L'hardware che fornisce a me o a qualcun altro X richieste / sec potrebbe non funzionare bene per te.
  • Ho un server MySQL dedicato di fascia bassa (Intel Core2 Duo E4600 2,40 GHz, 4 GB RAM) che serve una media di 100 richieste / sec (vicino a 10 milioni / giorno) con un minimo di CPU del 90%. A parte alcune modifiche di base alla configurazione, sta funzionando bene a causa della lettura pesante (+ 95% delle letture) e il set di record attivi è facilmente contenuto nella memoria. Considera la dimensione del tuo set attivo quando scegli la quantità di RAM del server in quanto può fare una grande differenza. Assicurarsi di comprendere la differenza tra la dimensione del database e la dimensione del set di record attivo. Ad esempio, i miei database ammontano a ~ 7 GB, ma il set attivo è probabilmente di soli 100 MB.
  • Allo stesso modo, ho un server Apache con specifiche simili che servono ~ 1 milione di richieste al giorno che ha un tasso di inattività della CPU ~ del 95% medio. Le richieste sono un mix di query AJAX di dati cartografici molto semplici e pagine MediaWiki più complesse.
  • Il benchmarking dell'applicazione specifica è un buon inizio nel tentativo di determinare esattamente ciò di cui hai bisogno. Non vuoi sottovalutare, ma sopravvalutare può essere altrettanto negativo a causa del potenziale spreco di denaro e fatica.
  • Considera non solo il tasso di richiesta medio ma il tasso di picco. Non si desidera un server che riesca a malapena a gestire la tariffa media poiché le tariffe delle richieste possono variare in modo significativo nel giorno, nella settimana e nel mese. Ad esempio, posso ottenere 3-4 volte il traffico durante le ore di punta nei fine settimana come faccio nelle ore minime durante la settimana. Quanto varia dipenderà dalla tua applicazione e base di utenti.
  • È possibile memorizzare nella cache qualsiasi richiesta del database / HTTP? Ciò può aumentare drasticamente il tasso di richieste con hardware più economico / meno a seconda di quanto è possibile memorizzare nella cache.
  • Considera le tue opzioni di ridimensionamento per la crescita futura ora invece che successivamente. Una buona opzione potrebbe essere quella di utilizzare il ridimensionamento orizzontale che ti consentirebbe di iniziare con un hardware minimo e di crescere facilmente secondo necessità.
  • La corretta progettazione del livello dell'applicazione può avere un effetto enorme sulle sue prestazioni finali. Una query SQL errata su una tabella senza indici può essere più lenta di ordini di grandezza rispetto a uno correttamente progettato. Allo stesso modo, i server Apache / MySQL mal configurati possono essere molte volte più lenti di quando configurati correttamente.
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.