Quante richieste dovrebbe essere in grado di gestire il mio server web?


39

Non entrare in dettagli sulle specifiche poiché so che non esiste una risposta reale per questo. Ma oggi ho fatto i test di carico con il abcomando in apache.

E ho raggiunto il numero di 70 richieste al secondo (1000 richieste con 100 utenti simultanei), su una pagina che sta caricando da 4 diverse tabelle DB e che sta manipolando i dati. Quindi è una pagina abbastanza pesante.

Il server non è utilizzato per nient'altro per ora e il carico su di esso sono solo io, poiché è in fase di sviluppo. Ma l'applicazione verrà utilizzata quotidianamente da molti utenti.

Ma è abbastanza? O dovrei anche preoccuparmi (fintanto che è X richieste al secondo)

Sto pensando che non dovrei preoccuparmi, ma vorrei alcuni consigli su questo.

Risposte:


44

70 richieste al secondo si basano su una tariffa oraria di 252.000 rendering di pagina / ora.

Se supponi che la sessione di navigazione media per il tuo sito abbia una profondità di 10 pagine, puoi supportare 25.000 unità / ora.

Probabilmente dovresti controllare questi numeri in base al conteggio previsto dei visitatori, che dovrebbe essere disponibile dalla gente sul lato aziendale.

Molti dei siti su cui lavoro vedono circa il 50% del loro traffico giornaliero in un periodo di picco di circa 3 ore ogni giorno. Se questo è il caso del tuo sito (dipende dal tipo di contenuto che fornisci e dal pubblico), allora dovresti essere in grado di supportare un numero unico giornaliero di visite di circa 150.000.

Questi sono numeri abbastanza buoni; Penso che dovresti stare bene. È saggio esaminare ora la cache del codice operativo e l'ottimizzazione del database, ma ricorda: l'ottimizzazione prematura è la radice di tutto il male. Monitora il sito, cerca gli hotspot e attendi che il traffico cresca prima di passare un costoso sforzo di ottimizzazione per un problema che potresti non avere.


Ottima risposta, esattamente quello che stavo cercando. Non ho fatto alcuna ottimizzazione e volevo ottenere i numeri di base per vedere dove ero seduto al momento.
Ólafur Waage,

"Se supponi che la sessione di navigazione media per il tuo sito abbia una profondità di 10 pagine, puoi supportare 25.000 unità / ora" ... partendo dal presupposto che ogni singolo utente invia una richiesta al secondo durante la sessione. Se un visitatore deve pensare prima di un clic / richiesta successiva, ad esempio 5 secondi, sarai in grado di supportare più visitatori in sessioni parallele.
Jochem Schulenklopper,

Concordo pienamente sull'ottimizzazione prematura dal punto di vista del codice. Ma, scegliere un disegno imperfetto nel suo insieme è in realtà la radice di tutti i mali. Niente può superare un design imperfetto tranne una riscrittura.
Jeff Fischer,

5

Ho usato 2 strumenti per guardare le prestazioni dei miei server Apache in passato.

Uno è Munin , che rappresenta graficamente ogni genere di cose tra cui il numero di istanze di apache, il numero di connessioni, la memoria disponibile, l'utilizzo del processore, ecc. E mi aiuta a determinare quando mi sto avvicinando a una zona pericolosa e perché.

La seconda è semplicemente la pagina di stato del server apache ( http: // your_server / server-status? Refresh = 10 ) che mi permette di vedere lo stato di ogni connessione, insieme a quante connessioni gratuite sono disponibili in un dato momento.


1

Ti suggerirei di preoccuparti solo se pensi che la tua app sarà molto occupata quando arriva a terra. È probabile che la pagina in questione sia stata colpita così duramente? Più forte? Di meno? Se non ne hai idea, sospetterei che è improbabile che si tratti di un problema in precedenza. Se è la tua pagina più lenta, saprai dove cercare se devi ottimizzare il sistema in un secondo momento.

Ci sono anche molte cose che puoi fare per ottimizzare la maggior parte dei server web e dei motori di database per ottenere maggiori prestazioni.


Vorrei essere preparato per un po 'di richieste, ad esempio una pagina molto veloce può gestire circa 110 richieste al secondo. Mentre il server può gestire 2900 rps su una pagina vuota.
Ólafur Waage,

0

In un commento affermi che il tuo server può gestire 2.900 richieste al secondo su una pagina vuota. Ciò indica abbastanza fortemente che non si tratta del server web stesso: è l'elaborazione.

Se stai usando PHP, prendi in considerazione un cache opcode come APC . Se il DB è un collo di bottiglia, memcached ti aiuterà anche.


Non particolarmente preoccupato per i numeri se 70 rps sono sufficienti.
Ólafur Waage,

0

Una volta messo il tuo sito in diretta, puoi anche guardare mod_top 1 che ti darà una vista in tempo reale del carico corrente su Apache. Non l'ho installato da solo, ma sembra sicuramente avere più informazioni e una migliore ripartizione del carico rispetto allo stato del server Apache standard.

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.