Confronto delle prestazioni dei server Web RPi 3: Apache, Nginx e Lighttpd


11

Qualcuno ha mai eseguito test di confronto delle prestazioni reali su RPi 3 sui server Web più diffusi:

  1. Apache2 - il server più diffuso
  2. Nginx - il server che afferma di essere il migliore
  3. Lighttpd - il server più leggero
  4. O un pacchetto di cui non ho sentito parlare

Qualcosa di simile a questo post di 4 anni per RPi 2 . Seguendo i consigli di quel post, ho ampliato la mia ricerca più in generale e ho trovato questo articolo , ma lo considero leggermente sospetto in quanto è una società di hosting e ho bisogno di una risposta su misura per l'hardware di RPi 3.


4
Off Topic: Non capisco perché qualcuno abbia votato in giù una domanda senza dare un suggerimento su cosa non va.
Joe Platano,

2
Non sono né aggressivo passivo né cerco di eliminare la tua domanda. All'epoca ero troppo occupato per pubblicare un commento che spiegasse il mio downvote. Il primo problema è che stai ottimizzando prematuramente. Non hai definito chiaramente il caso d'uso (quali moduli / funzionalità saranno necessari ecc.). Potrei andare avanti per molti altri paragrafi, ma lascerò che le tue parole parlino da sole: "Se Nginx farà ciò di cui ho bisogno, allora sembra essere un migliore out-of-the-box (o out-of-apt -get) soluzione da mettere insieme prima dell'inizio delle modifiche alle prestazioni ".
Steve Robillard,

2
Se Nginx farà ciò di cui ho bisogno (quindi potresti essere in grado di escludere uno o più server in base ai requisiti; rendendo quindi la tua domanda irrilevante. Stai mettendo il carrello davanti al cavallo. Prendi un sistema che funziona quindi preoccupati ottimizzazione delle prestazioni. In secondo luogo, per rispondere alla tua domanda dipenderà dal carico di lavoro specifico, l'uso del DB sarà letto pesante o scriverà pesante? il sistema sarà associato a DB o IO? Se il DB non è probabile una quantità di ottimizzazione del tuo server web per aiutare
Steve Robillard,

2
Ancora una volta citando "essere in grado di servire loro qualcosa senza un enorme ritardo è importante". Quanto costa troppo ritardo? e infine "Ho visto altri post su come ottimizzare Apache e Nginx per prestazioni migliori, ma sembra un sacco di lavoro solo per costruire una configurazione di test per confrontare le opzioni". Non è esattamente quello che stai chiedendo a qualcuno di fare per te in questa domanda? Senza il vantaggio di dati sul traffico reali o una specifica completa del problema. Senza queste cose possono anche consultare una sfera di cristallo.
Steve Robillard,

Considerando il footprint di memoria e le limitazioni del processore del PI, qualcosa di simile a una configurazione basata su nodo insieme a express in un server guidato da eventi IO non bloccante sarebbe più utile? Ancora una volta, dipende dal tuo caso d'uso. Stai offrendo file statici o dinamici. È il tuo pan per avere un'applicazione web o un sito Web.
CoderX,

Risposte:


5

Questo dovrebbe essere un commento, ma è un po 'lungo.

Sebbene non abbia (ancora) testato vari server Web sul mio Pi, in precedenza ho eseguito molti test su server Web in esecuzione su hardware server x86. Quello che so da lì è:

  1. la maggior parte delle persone si confonde sulla differenza tra prestazioni e capacità: vedrai molti post che affermano che nginx è più veloce di (pre-fork) apache, questo non è vero , tranne che sotto carico pesante. Nginx (e leggero) sono entrambi molto migliori in termini di capacità. E questo è al livello più banale di analisi.

  2. Poche persone distribuiscono contenuti esclusivamente statici con i loro server web (in questo scenario, tux e G-Wan lasciano i server che hai citato nella loro polvere). Il profilo delle prestazioni dipende fortemente dalla tecnologia del livello logico e dalla sua integrazione con il server web.

  3. Le prestazioni (e la capacità) dipendono da tutto il resto in esecuzione sul dispositivo.

Esistono molte funzionalità di un server di datacenter che sono molto facili da vivere senza se si dispone di una ridondanza a livello di cluster appropriata (doppia psu, doppia rete, console remota ...) tuttavia un Raspberry PI non ha il senso migliore come web piattaforma di servizio a causa dell'I / O del disco lento: hai davvero bisogno di qualcosa con connettività SATA, [i] SCSI, AOE o infiniband alla tua memoria. Il Pi non ha un'interfaccia SATA, ha solo una porta Ethernet e non sono a conoscenza di un'interfaccia infiniband o SCSI.

(ci sono piccoli computer a scheda singola che sono una scelta più sensata per lo sviluppo di funzionalità di webserving - e un gruppo di questi può avere un buon senso economico, ma in tale scenario si stanno guardando più nodi con capacità a strati per la terminazione SSL, HTTP memorizzazione nella cache, webserving, logica dell'applicazione e gestione dei dati).

La domanda del più veloce è difficile da definire, diversa per ogni caso e impossibile rispondere.

Tuttavia, il più grande errore che vedo più e più volte nell'IT è che le persone scelgono i prodotti in base a un singolo attributo piuttosto che considerare l'impatto più ampio sia in termini di tecnologia che di persone coinvolte.


Tutti i punti positivi. Temo che questo progetto sia tornato a fuoco.
Sandor Dosa,

2

Temo che tu debba scoprirlo da solo. Quando ho avuto questa domanda per il mio RPi2, mi sono imbattuto in Siege e httperf . Ho seguito questo esempio per eseguire i benchmark - solo invece di semplici pagine HTML ho richiesto file PHP. Le prestazioni del web server dipendono anche dai moduli cgi che sceglierai. Un semplice lighttpd alla vaniglia può essere più veloce di un Apache alla vaniglia. Se stai scegliendo / configurando il CGI in modo errato, questo potrebbe cambiare e Apache può superare il Lighty.


Temo che tu abbia ragione. Inizierò a provare a risolvere un metodo di prova e a riferire.
Sandor Dosa,

@SandorDosa, tienimi aggiornato, per favore
Joe Platano

2

Ho scelto l'opzione lighttpd, per i seguenti motivi:

  1. leggero
  2. uno dei più facili da installare
  3. funziona sul mio RPi2 negli ultimi due anni senza problemi (24x7)
  4. avevo bisogno di un dispositivo buono e semplice da usare come dispositivo di prova

Lo uso come:

  1. monitorare la temperatura del mio sistema cpu, temperatura ambiente / ambiente e registratore grafico di umidità
  2. Server FTP per scambiare file con i miei partner commerciali ed evitare di archiviare dati riservati su server di posta gratuiti di terze parti
  3. Molti widget Web per controllare l'indice di mercato come forex, obbligazioni, azioni, ecc.
  4. prova il codice html
  5. eseguire uno script che ho creato per controllare la posta, poiché ho molti account di posta, evitando blocchi di geo-tagging
  6. gestire un blog semplice (blog Nibble)
  7. lavorare come honeypot per individuare (e bloccare) gli hacker sul mio filo

solo per citarne alcuni usi.

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.