2009-03-06 12 views
7

In che modo Apache è in grado di gestire the c10k problem in condizioni normali? Diciamo mentre eseguo script molto piccoli con pochi dati, o devo ridimensionarmi se utilizzo Apache?Apache e c10k

Sullo sfondo il sollevamento pesante viene eseguito da alcuni server che eseguono software specializzato che elabora le richieste ma mi piacerebbe utilizzare Apache come front. È un piano fattibile?

+0

Grazie per il collegamento. Dal telefono non potrei farlo –

risposta

2

Suppongo che tu abbia probabilmente visto this data, ma in caso contrario, potrebbe darti un'idea.

+1

Buone informazioni, e mi piace molto thttpd (l'ho usato un paio di volte negli ultimi 8 anni). È importante notare, tuttavia, che la tabella delle informazioni elencate è più vecchia di dieci anni. –

+1

Quella pagina dice "ultimo aggiornamento del 1998" ... qualcuno ha mai fatto banchmark simili da allora? –

8

Ritengo che Apache sia più un server di origine: esegue qualcosa come mod_php o mod_perl per generare il contenuto ed essere intelligente sull'instradamento al sistema appropriato.

Se stai ottenendo migliaia di hit simultanei sul lato anteriore del tuo sito, con un mix di tipi di dati (statici e dinamici) restituiti, potresti trovare utile mettere davanti un sistema più ottimizzato .

Il classico problema di post-ottimizzazione con Apache non sta generando il contenuto dinamico (o almeno, che può essere ottimizzato all'inizio del processo), ma semplicemente aspettando che un client lento sia in grado di ricevere i byte che vengono inviati. Può quindi essere un vantaggio significativo mettere un proxy inverso, sotto forma di Squid o Nginx, di fronte ai server per assumere il "cucchiaio-alimentazione" dei client di rete lenti, consentendo al tempo stesso la produzione di contenuti a pieno regime velocità e alle velocità della rete locale - 100 Mb/sec o persino velocità gigabit - se è necessario attraversare una rete.

+0

approccio molto interessante! Sai dove potrei andare a trovare altri consigli pratici come questo? –

1

Ragazzi, immaginate di utilizzare un server Web con connessioni 10K (simultanee). Come potrebbe essere?

  • hai molte molte connessioni al secondo

    • contenuti dinamici

      Sei sicuro che la CPU in grado di gestire che molte sessioni PHP, per esempio? Suppongo di no, quindi perché stai pensando al problema della C10K? : D

    • contenuti statici - piccoli file

      E ancora soo molte connessioni? Sul singolo server? Probabilmente hai anche problemi con il networking/throughput o sei il futuro concorrente di Google. Usa lighttpd che risolve il problema con C10K ed è stabile: luce volante. L'utilizzo di Apache solo per file statici per siti di grandi dimensioni è ovvio.

  • I vostri clienti sono il download di file di grandi dimensioni per un grande momento - contenuti statici

    • ISO immagini, archivi ecc

      Se si sta facendo via web server - FTP potrebbe essere più appropriato.

    • Streaming video

      Usa lighttpd o software specializzato. E ancora ... E altre risorse?

Sto usando Linux Virtual Server come bilanciamento del carico di fronte al server Apache (con le patch specifiche per LVS-NAT) e sono felice :) Questa stringa è una risposta che si desidera ascoltare .

+1

potresti voler ridurre un po 'il linguaggio, che tende ad attirare le bandiere, ecc. E una risposta cancellata automaticamente non aiuta l'OP o rende giustizia al tuo tempo nel rispondervi. –

+0

c10k diventa un problema quando lo script kiddies usa slowloris.pl ... – jpic

+0

usa valori di timeout basso tcp e keepalive e non avrai questo problema. comunque, avrai lo stesso problema su altri server, prima che i pacchetti lo raggiungano :) – GioMac