Comparaison des performances des serveurs Web RPi 3: Apache, Nginx et Lighttpd


11

Quelqu'un a-t-il fait des tests de comparaison de performances réels sur RPi 3 sur des serveurs Web populaires:

  1. Apache2 - le serveur le plus répandu
  2. Nginx - le serveur qui prétend être le plus performant
  3. Lighttpd - le serveur le plus léger
  4. Ou un paquet dont je n'ai pas entendu parler

Quelque chose comme ce poste de 4 ans pour le RPi 2 . En suivant les conseils de cet article, j'ai élargi mes recherches de manière plus générale et trouvé cet article , mais le considère légèrement suspect car c'est une société d'hébergement, et j'ai besoin d'une réponse adaptée au matériel du RPi 3.


4
Hors sujet: Je ne comprends pas pourquoi quelqu'un vote contre une question sans donner un indice de ce qui ne va pas.
Joe Platano

2
Je ne suis ni passif agressif ni ne cherche à supprimer votre question. J'étais trop occupé à l'époque pour poster un commentaire expliquant mon downvote. Le premier problème est que vous optimisez prématurément. Vous n'avez pas clairement défini le cas d'utilisation (quels modules / fonctionnalités seront nécessaires, etc.). Je pourrais continuer pour plusieurs paragraphes, mais je laisserai vos propres mots parler d'eux-mêmes: "Si Nginx fera ce dont j'ai besoin, alors il semble que ce soit un meilleur out-of-the-box (ou out-of-apt) -get) solution à mettre en place avant le début des ajustements de performances. "
Steve Robillard

2
Si Nginx fait ce dont j'ai besoin (vous pourrez peut-être exclure un ou plusieurs des serveurs en fonction des besoins, ce qui rend votre question non pertinente. Vous placez le chariot avant le cheval. Obtenez un système qui fonctionne, puis vous inquiétez de Deuxièmement, pour répondre à votre question, cela dépendra de la charge de travail spécifique, l'utilisation de la base de données sera-t-elle lourde en lecture ou en écriture? Le système sera-t-il lié à la base de données ou lié aux E / S? Si la base de données ne nécessite aucun réglage de votre serveur Web pour aider.
Steve Robillard

2
Encore une fois, il est important de vous citer "pouvoir leur servir quelque chose sans énormément de décalage". Combien est trop de retard? et enfin "J'ai vu d'autres articles sur la façon de modifier Apache et Nginx pour de meilleures performances, mais cela semble beaucoup de travail juste pour construire une configuration de test pour comparer les options." N'est-ce pas exactement ce que vous demandez à quelqu'un de faire pour vous dans cette question? Sans l'avantage de données de trafic réelles ou d'une spécification complète du problème. Sans ces choses, ils peuvent tout aussi bien consulter une boule de cristal.
Steve Robillard

Compte tenu de l'encombrement de la mémoire et des limites du processeur du PI, quelque chose comme une configuration basée sur un nœud et une expression dans un serveur piloté par les événements d'E / S non bloquants ne serait-il pas plus utile? Encore une fois, cela dépend de votre cas d'utilisation. Servez-vous des fichiers statiques ou des fichiers dynamiques? Votre pan est d'avoir une application web ou un site web.
CoderX

Réponses:


5

Cela devrait être un commentaire, mais c'est un peu long.

Bien que je n'aie pas (encore) testé divers serveurs Web sur mon Pi, j'ai déjà effectué de nombreux tests sur des serveurs Web fonctionnant sur du matériel de serveur x86. Ce que je sais de là, c'est:

  1. la plupart des gens sont confus à propos de la différence entre les performances et la capacité - vous verrez de nombreux articles affirmant que nginx est plus rapide qu'apache (pré-fork), ce n'est pas vrai , sauf sous une charge élevée. Nginx (et lighty) sont tous deux bien meilleurs en termes de capacité. Et c'est au niveau d'analyse le plus trivial.

  2. Peu de gens diffusent du contenu exclusivement statique avec leurs serveurs Web (dans ce scénario, Tux et G-Wan quittent les serveurs que vous avez mentionnés dans leur poussière). Le profil de performances dépend fortement de la technologie de niveau logique et de son intégration avec le serveur Web.

  3. Les performances (et la capacité) dépendent de tout le reste exécuté sur l'appareil.

Il y a beaucoup de fonctionnalités d'un serveur de centre de données qui sont très faciles à vivre sans si vous avez une redondance de niveau de cluster appropriée (double alimentation, double réseau, console distante ...) mais un Raspberry PI n'a pas le meilleur sens en tant que web plate-forme de service en raison de la lenteur des E / S disque - vous avez vraiment besoin de quelque chose avec une connectivité SATA, [i] SCSI, AOE ou infinibande à votre stockage. Le Pi n'a pas d'interface SATA, n'a qu'un seul port Ethernet et je ne connais pas d'interface infinibande ou SCSI.

(il existe de petits ordinateurs à carte unique qui sont un choix plus judicieux pour développer la capacité de serveur Web - et un cluster de ceux-ci peut être judicieux sur le plan économique, mais dans un tel scénario, vous regardez plusieurs nœuds avec une capacité en couches pour la terminaison SSL, HTTP mise en cache, serveur Web, logique d'application et gestion des données).

La question du plus rapide est difficile à définir, différente pour chaque cas et impossible à répondre.

Cependant, la plus grande erreur que je vois encore et encore dans l'informatique est que les gens choisissent des produits en fonction d'un seul attribut plutôt que de considérer l'impact plus large à la fois en termes de technologie et de personnes impliquées.


Bons points tous. Je crains que ce projet ne soit de nouveau brûlé.
Sandor Dosa

2

Je crains que vous ne deviez le découvrir par vous-même. Quand j'ai eu cette question pour mon RPi2, je suis tombé sur Siege et httperf . J'ai suivi cet exemple pour exécuter les benchmarks - juste au lieu de pages HTML simples, j'ai demandé des fichiers php. Les performances du serveur Web dépendent également des modules cgi que vous choisirez. Un lighttpd vanille ordinaire peut être plus rapide qu'un Apache vanille. Si vous choisissez / configurez le CGI de manière incorrecte, cela pourrait changer et l'Apache peut surpasser le Lighty.


J'ai bien peur que tu aies raison. Je vais commencer à essayer de trier une méthode de test et de faire rapport.
Sandor Dosa

@SandorDosa, tenez-moi au courant, pls
Joe Platano

2

J'ai choisi l'option lighttpd, pour les raisons suivantes:

  1. poids léger
  2. l'un des plus faciles à installer
  3. fonctionne sur mon RPi2 depuis deux ans sans aucun problème (24x7)
  4. besoin d'un bon et simple à utiliser comme appareil de test

Je l'utilise comme:

  1. surveiller la température du processeur de mon système, la température ambiante / ambiante et l'enregistreur de graphique d'humidité
  2. Serveur FTP pour échanger des fichiers avec mes partenaires commerciaux et éviter de stocker des données sensibles sur des serveurs de messagerie gratuits tiers
  3. De nombreux widgets Web pour vérifier l'indice du marché comme le forex, les obligations, les actions, etc.
  4. tester le code html
  5. exécuter un script que j'ai fait pour vérifier le courrier, car j'ai de nombreux comptes de messagerie, en évitant les verrous de géolocalisation
  6. gérer un blog simple (blog Nibble)
  7. travailler comme un pot de miel pour repérer (et bloquer) les pirates sur mon fil

pour n'en nommer que quelques utilisations.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.