Aumento della capacità di carico per il sito web in crescita

Il mio sito è attualmente in esecuzione su un server web dedicato (con LiteSpeed) e un server MySQL dedicato. È un sito basato sul download con un sacco di contenuti generati dagli utenti, che possono essere trasmessi in streaming e sono disponibili anche migliaia di miniature e contenuti statici.

Sono al punto in cui il server web non è più in grado di gestire la quantità di traffico, quindi sto cercando un modo migliore per aumentare la capacità considerando la grande quantità di contenuti scaricabili.

  • NAT manuale su Checkpoint (Redirect tutte le richieste http a un server web locale)
  • Come cambiare DNS per un sito web senza interruzione del servizio?
  • Come posso usare Glassfish sotto Linux come un proxy inverso?
  • Tutti i server inondati dall'acqua salata, è ansible recuperare i dati dalle unità multipiattaforms?
  • È tutto ansible trasformare questo controller di dominio in un PDC?
  • Come creare un server di applicazioni ad alta disponibilità?
  • Il mio host suggerisce di rispecchiare tutto su un secondo server web e distribuire il carico tra di essi utilizzando DNS Made Easy o avere il mio bilanciatore di carico (utilizzando ldirector) davanti ai due server web.

    Qualcuno potrebbe consigliare se il metodo di cui sopra sarebbe l'opzione migliore? Qualcuno ha alcuna esperienza con DNS Made Easy e / o ldirector?

    Apprezzo qualsiasi aiuto.

    2 Solutions collect form web for “Aumento della capacità di carico per il sito web in crescita”

    Innanzitutto, è necessario capire where si trova il collo di bottiglia prima di poter fare qualsiasi progresso.

    Gli host sono pronti a consigliare nuovi hardware, ma in molti casi, a less che non sia chiaro che si dispone di limitazioni hardware, il nuovo hardware potrebbe non produrre miglioramenti significativi.

    L'aggiunta di hardware ha una riduzione dei rendimenti se non è stata eseguita in maniera intelligente. Andando da un server a due può raddoublere le risorse, ma devi andare da 2-4, 4-> 8 per get lo stesso bump.

    Monitoraggio e misurazione

    Se non controlli le metriche del sistema, i tempi di caricamento e altri dati, allora questo è il primo posto da avviare. Gli strumenti gratuiti come Munin e Systat sono grandi sulle soluzioni server. Strumenti quali http://Browsermob.com e http://webpagetest.org possono fornirti metriche orientate agli utenti.

    Segmento traffico

    In genere un porto diretto di un sito multimediale complesso ad un altro server non è molto efficace. Spesso si otterranno risultati superiori per il tuo investimento segmentando il traffico.

    Ad esempio, abbiamo un cliente con un sito di gioco molto affollato (milioni di colpi al giorno). Abbiamo scaricato i giochi flash in un pool di server poco costosi che eseguono Nginx. Questi sisthemes spingono TB di traffico / mese. Queste sono le caselle di livello di entrata e tutto quello che servono è contenuto statico.

    Ora sul lato dei costi, queste due caselle di accesso combinate erano 20% più economiche rispetto al server primario. Abbiamo guadagnato più di un miglioramento della capacità di 4x. Se avessimo appena clonato il server primario e caricato bilanciato, sospetto al meglio che il miglioramento sarebbe stato di 1,5-1,8x.

    In breve, mettere un certo impegno nella comprensione del consiglio del problema delle performance può risparmiare un sacco di soldi in seguito.

    DNS reso facile

    Questa è una soluzione DNS e non affronta affatto il bilanciamento del carico. Possono parlare di DNS rotondo. Non saprei veramente perché questo è stato portto all'equazione in questa fase.

    Ldirector

    Questo è uno strumento per gestire i nodes in un cluster LVS. Ancora una volta non sicuro di siero di latte questo articolo specifico è stato suggerito. In genere usiamo semplicemente un bilanciatore di carico (hardware o qualcosa del genere Nginx / HA-Proxy) e il traffico verso i server backend appropriati.

    Il bilanciamento del carico basato su DNS non è buono per diversi motivi:

    1. È ansible controllare l'accesso ai server e non è ansible assegnare il traffico in modo diverso o uniforms tra i due server.
    2. Ancora più importnte, questo modo di bilanciamento del carico non riconosce l'errore del server. Quindi, perdenetworking parte del traffico se uno dei server non è inaspettato.
    3. La cache DNS rende ancora peggio.

    Preferisco usare una tecnica di bilanciamento del carico più intelligente come il ldirector o l' haproxy . Questo tipo di bilanciamento del carico consente di distribuire il traffico in base alle specifiche dei server e utilizzando diversi fattori (carico, numero di conn, ecc.).

    C'è ancora una cosa più importnte da notare. Hai detto di avere un DB mysql e un contenuto utente sul server. Se distribuinetworking il traffico tra i due server, è necessario disporre di un meccanismo di sincronizzazione tra i due server. In caso contrario, gli utenti non visualizzeranno sempre gli stessi dati each volta che accedono ad un server diverso.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.