Domanda

Supponiamo, ho voluto sviluppare sito overflow dello stack. Come faccio a stimare la quantità di hardware di largo consumo necessario per supportare questo sito assumendo 1 milione di richieste al giorno. Ci sono casi di studio che spiega i miglioramenti delle prestazioni possibili in questa situazione?

Lo so I / O collo di bottiglia è il principale collo di bottiglia nella maggior parte dei sistemi. Quali sono le possibili opzioni per migliorare le prestazioni di I / O? Pochi di loro so che sono

  1. caching
  2. replica
È stato utile?

Soluzione

È possibile migliorare le prestazioni di I / O in diversi modi a seconda di quello che si utilizza per la configurazione di archiviazione:

  1. Aumentare la dimensione del blocco del filesystem se la vostra applicazione visualizza buona località spaziale nel suo I / O o utilizza file di grandi dimensioni.
  2. 10 (striping + mirroring) per le prestazioni + ridondanza (guasto del disco di protezione).
  3. Utilizzare dischi veloci (Prestazioni Wise: SSD> FC> SATA).
  4. Non immagazzinare carichi di lavoro in diversi momenti della giornata. per esempio. Backup durante la notte, app normale I / O durante il giorno.
  5. atime aggiornamenti nel vostro file system.
  6. file NFS cache gestisce alias Haystack (Facebook) , se la memorizzazione dei dati sul server NFS.
  7. Combina file di piccole dimensioni in pezzi più grandi, alias BigTable , HBase .
  8. Evitare grosse directory vale a dire un sacco di file nella stessa directory (invece che dividere file tra diverse cartelle in una gerarchia).
  9. cluster sistema di storage (sì non esattamente hardware di largo consumo).
  10. Ottimizza / progettare l'applicazione per il disco sequenziale accede quando possibile.
  11. memcached . :)

Si consiglia di guardare la sezione di StackOverflow Architettura .

Altri suggerimenti

controllare questo pratico strumento:

http://www.sizinglounge.com/

e un'altra guida di Dell:

http: / /www.dell.com/content/topics/global.aspx/power/en/ps3q01_graham?c=us&l=en&cs=555

se si desidera che la propria comunità StackOverflow-come, è possibile iscriversi con StackExchange .

è possibile leggere alcuni casi di studio qui:

Elevata scalabilità - come Rackspace ora utilizza MapReduce e Hadoop per eseguire query terabyte di dati http://highscalability.com/how- Rackspace-ora-usi-MapReduce-e-Hadoop-query-terabyte-dati

http: //www.gear6 .com / gear6-download? fid = 56 & DLT = case-study & ls = Veoh-case-study

1 milioni di richieste al giorno è 12 / secondo. Overflow dello stack è abbastanza piccolo che si potrebbe (con normalizzazione e trucchi di compressione interessante) adattarlo interamente nella RAM di un 64 GByte Dell PowerEdge 2970. Non sono sicuro di dove il caching e la replica devono svolgere un ruolo.

Se hai un problema pensare abbastanza di normalizzazione, un R900 PowerEdge con 256 GB è disponibile.

Se non ti piace un singolo punto di errore, è possibile collegare un paio di quelle e solo spingere gli aggiornamenti su un socket (preferibilmente su una scheda di rete separata). Anche un carico massimo di 12K / secondo non dovrebbe essere un problema per un sistema di memoria principale.

Il modo migliore per evitare il collo di bottiglia di I / O è quello di non fare di I / O (il più possibile). Ciò significa un'architettura Prevayler-like con operazioni di scrittura in batch (nessun problema di perdere qualche secondo di dati), in pratica un file di log, e per la replica anche loro scrivere ad una presa di corrente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top