Quel type de performance puis-je attendre de l'utilisation d'un Raspberry Pi en tant que serveur Web?

39

Quelqu'un a-t-il effectué une analyse comparative de serveur Web sur son Raspi? Je n'ai pas encore mon Raspi, mais je prévois de l'utiliser comme serveur Web et je suis intéressé de voir les statistiques concernant:

  • Nombre de requêtes par seconde
  • Temps de réponse de latence entre les demandes
  • Débit (ie octets par seconde)

Si ceux-ci sont différents pour différentes combinaisons de logiciels de serveur Web et de système d'exploitation, je serais également intéressé de voir une comparaison.

AntonChanning
la source
4
Le vote de clôture peut-il expliquer pourquoi? C'est une question objective avec une réponse objective mesurable.
AntonChanning
1
Je ne peux pas répondre avec autorité, mais j'estime que les serveurs Web les plus rapides en général seront les plus rapides du RPi. Ma préférence, Nginx.
Alex Chamberlain
@AlexChamberlain Merci, utile de savoir, mais je serais toujours intéressé de voir le type de performance que je peux obtenir de l'appareil, donc je ne prévois pas l'utiliser pour un projet dépassant ses capacités ...
AntonChanning

Réponses:

28

Comme Alex l'a dit, je m'attends à ce que les tests montrent que les serveurs Web les plus rapides de Linux seront toujours les plus rapides, quelle que soit leur architecture.

Si quelqu'un veut exécuter des tests de performance, le tutoriel suivant m'a été utile:

Comment effectuer des tests sur un serveur Web


Servir des pages statiques

J'ai testé le RPi en utilisant Apache servant une simple page statique:

<h1>It works!</h1>

En tant que groupe de contrôle, j'ai utilisé mon serveur Web principal, qui contient les spécifications suivantes;

Intel(R) Xeon(R) CPU           X3323  @ 2.50GHz
384MB RAM

Les résultats sont les suivants:

Contrôle

ab -n 1000 -c 5 http://www.ivings.org.uk/~james/index.html

Server Software:        Apache/2.2.14
Server Hostname:        www.ivings.org.uk
Server Port:            80

Document Path:          /~james/index.html
Document Length:        19 bytes

Concurrency Level:      5
Time taken for tests:   17.767 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      294000 bytes
HTML transferred:       19000 bytes
Requests per second:    56.29 [#/sec] (mean)
Time per request:       88.833 [ms] (mean)
Time per request:       17.767 [ms] (mean, across all concurrent requests)
Transfer rate:          16.16 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       42   44   0.8     44      50
Processing:    44   45   0.9     45      59
Waiting:       44   45   0.9     45      59
Total:         86   89   1.3     88     108

Percentage of the requests served within a certain time (ms)
  50%     88
  66%     89
  75%     89
  80%     89
  90%     90
  95%     91
  98%     91
  99%     94
 100%    108 (longest request)

Tarte aux framboises

ab -n 1000 -c 5 http://86.137.189.68/index.html

Server Software:        Apache/2.2.22
Server Hostname:        86.137.189.68
Server Port:            80

Document Path:          /index.html
Document Length:        19 bytes

Concurrency Level:      5
Time taken for tests:   23.186 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      304000 bytes
HTML transferred:       19000 bytes
Requests per second:    43.13 [#/sec] (mean)
Time per request:       115.930 [ms] (mean)
Time per request:       23.186 [ms] (mean, across all concurrent requests)
Transfer rate:          12.80 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       40   44   5.6     43     116
Processing:    49   71 156.1     57    2157
Waiting:       47   53   6.7     55     104
Total:         91  116 156.1     99    2198

Percentage of the requests served within a certain time (ms)
  50%     99
  66%    100
  75%    100
  80%    100
  90%    102
  95%    126
  98%    150
  99%    667
 100%   2198 (longest request)

Conclusion

Note: Ceci est mieux traité comme une estimation.

Les résultats montrent que le Raspberry Pi s’est vraiment bien comporté compte tenu. Ce n'était que légèrement moins réactif que mon serveur Web principal.

Il devrait être bon de traiter un nombre assez grand de demandes.

Jivings
la source
C'est peut-être vrai, mais quel type de performance le plus rapide peut-il produire? Je pense que vous avez tous deux mal compris ce que j'essaie de vous demander ...
AntonChanning Le
1
Je vais effectuer quelques repères sur Apache et je reviendrai vers vous.
Jivings
Merci. Je m'excuse si ma question n'était pas claire. Peut-être ai-je brouillé les pistes en demandant une comparaison, alors que mes principales préoccupations étaient les statistiques relatives à une pile LAMP standard.
AntonChanning
1
Le "A" dans LAMP représente le serveur HTTP Apache ...
Roger Dahl
1
@ Jivings: C'était un commentaire destiné à l'OP. Dans le commentaire initial de votre message, il a indiqué qu'il souhaitait connaître les performances du serveur HTTP le plus rapide et ne semblait pas satisfait de votre point de repère basé sur Apache. Il a ensuite implicitement demandé un repère Apache (le "A" dans LAMP).
Roger Dahl
5

Apache n'est pas le meilleur choix pour la diffusion de contenu statique, nginx est mieux adapté à cela. J'ai fait un test d' évaluation en utilisant http://lekensteyn.nl/index.html comme document de test. Il s'agit d'un document plus volumineux que l'exemple de Jiving, car 19 octets ne sont pas réalistes pour une page réelle. Les résultats sont assez étonnants, le RPi surpasse même mon ordinateur de travail (peut-être parce que toutes sortes de commutateurs de débogage du noyau sont activées).

Voici nginx 1.4.1 fonctionnant sur Arch Linux (RPi,, access_log offEthernet câblé):

$ ab -n 1000 -c 5 http://192.168.2.10/index.html

Server Software:        nginx/1.4.1
Server Hostname:        192.168.2.10
Server Port:            80

Document Path:          /index.html
Document Length:        2159 bytes

Concurrency Level:      5
Time taken for tests:   2.341 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      2392000 bytes
HTML transferred:       2159000 bytes
Requests per second:    427.18 [#/sec] (mean)
Time per request:       11.705 [ms] (mean)
Time per request:       2.341 [ms] (mean, across all concurrent requests)
Transfer rate:          997.86 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   0.1      1       1
Processing:     4   11   1.0     11      20
Waiting:        3   11   1.0     10      19
Total:          4   12   1.0     12      21

Percentage of the requests served within a certain time (ms)
  50%     12
  66%     12
  75%     12
  80%     12
  90%     12
  95%     12
  98%     17
  99%     18
 100%     21 (longest request)

Voici mon ordinateur portable ( access_log offEthernet filaire):

Server Software:        nginx/1.4.1
Server Hostname:        192.168.2.12
Server Port:            80

Document Path:          /index.html
Document Length:        2159 bytes

Concurrency Level:      5
Time taken for tests:   2.593 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      2392000 bytes
HTML transferred:       2159000 bytes
Requests per second:    385.62 [#/sec] (mean)
Time per request:       12.966 [ms] (mean)
Time per request:       2.593 [ms] (mean, across all concurrent requests)
Transfer rate:          900.79 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        2    6   3.4      5      82
Processing:     3    7   5.6      6      86
Waiting:        3    7   5.5      5      82
Total:          6   13   6.8     12      94

Percentage of the requests served within a certain time (ms)
  50%     12
  66%     13
  75%     14
  80%     15
  90%     17
  95%     19
  98%     24
  99%     34
 100%     94 (longest request)

Pour être complet, mon serveur distant. Il est plus lent, la connexion WAN étant le goulot d'étranglement probable (elle access_logn'est pas désactivée non plus):

Server Software:        nginx/1.2.8
Server Hostname:        lekensteyn.nl
Server Port:            80

Document Path:          /index.html
Document Length:        2159 bytes

Concurrency Level:      5
Time taken for tests:   11.074 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      2370000 bytes
HTML transferred:       2159000 bytes
Requests per second:    90.30 [#/sec] (mean)
Time per request:       55.371 [ms] (mean)
Time per request:       11.074 [ms] (mean, across all concurrent requests)
Transfer rate:          209.00 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       25   27   2.3     26      59
Processing:    28   29   2.3     28      59
Waiting:       26   27   2.4     27      59
Total:         53   55   3.8     55     102

Percentage of the requests served within a certain time (ms)
  50%     55
  66%     55
  75%     55
  80%     55
  90%     56
  95%     57
  98%     59
  99%     86
 100%    102 (longest request)

Avec plus de simultanéité et un plus grand nombre de demandes, les chiffres devraient être plus fiables, car davantage d'échantillons peuvent être inclus (lorsque je lisais abmon ordinateur portable en mode filaire / sans fil, ses nombres fluctuaient fortement). Notez que lors des tests avec les journaux d’accès activés, ces tampons de système de fichiers entraînent des retards d’écriture imprévisibles lorsque le répertoire des journaux se trouve sur la carte SD.

Lekensteyn
la source