Raspberry Pi를 웹 서버로 사용하면 어떤 성능을 기대할 수 있습니까?


39

사람이 어떤 일했습니다 벤치마킹 웹 서버 자신의 Raspi에를? 아직 Raspi가 없지만 웹 서버로 사용할 계획이며 다음에 대한 통계를보고 싶습니다.

  • 초당 요청 수
  • 요청 간 대기 시간 응답 시간
  • 처리량 (예 : 초당 바이트)

이것들이 다른 웹 서버 소프트웨어 및 OS 조합에 대해 다르면 비교를보고 싶습니다.


4
마감 투표가 이유를 설명해 주시겠습니까? 이것은 객관적인 측정 가능한 대답을 가진 객관적인 질문입니다.
AntonChanning 2016 년

1
정식으로 대답 할 수는 없지만 일반적으로 가장 빠른 웹 서버가 RPi에서 가장 빠를 것이라고 생각합니다. 내가 선호하는 Nginx.
Alex Chamberlain

@AlexChamberlain 고마워요. 알아두면 도움이 되겠지만, 장치에서 얻을 수있는 성능의 종류를보고
싶어서

답변:


28

Alex가 말했듯이 벤치 마크는 아키텍처에 관계없이 가장 빠른 Linux 웹 서버가 여전히 가장 빠르다는 것을 보여줄 것으로 기대합니다.

누구든지 벤치 마크를 실행하려면 다음 자습서가 유용했습니다.

웹 서버에서 벤치 마크를 수행하는 방법


정적 페이지 제공

간단한 정적 페이지를 제공하는 Apache를 사용하여 RPi를 테스트했습니다.

<h1>It works!</h1>

컨트롤 그룹으로서 나는 다음과 같은 사양을 따르는 기본 웹 서버를 사용했습니다.

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

결과는 다음과 같습니다.

제어

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)

라즈베리 파이

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)

결론

참고 : 이것은 추정치로 처리하는 것이 가장 좋습니다.

결과는 Raspberry Pi가 실제로 잘 수행되었음을 보여줍니다. 기본 웹 서버보다 응답 속도가 약간 낮았습니다.

합리적으로 많은 수의 요청을 처리하는 것이 좋습니다.


그럴 수도 있지만, 가장 빠른 성능을 발휘할 수있는 성능은 무엇입니까? 나는 당신이 내가 무엇을 묻고 있는지 오해했다고 생각합니다 ...
AntonChanning

1
아파치에 대한 몇 가지 벤치 마크를 수행하고 다시 연락 드리겠습니다.
Jivings

감사. 내 질문이 명확하지 않은 경우 사과드립니다. 아마도 표준 LAMP 스택에 대한 통계가 나의 주요 관심사 일 때 비교를 요청하는 물을 어지럽 혔을 것입니다.
AntonChanning 2016 년

1
LAMP의 "A"는 ... 아파치 HTTP 서버를 의미합니다
로저 달

1
@Jivings : OP를위한 주석이었습니다. 귀하의 게시물에 대한 초기 의견에서 그는 가장 빠른 http 서버의 성능을 찾는 데 관심이 있으며 Apache 기반 벤치 마크에 만족하지 않는 것으로 나타났습니다. 그런 다음 Apache 벤치 마크 (LAMP의 "A")를 암시 적으로 요청했습니다.
Roger Dahl

5

정적 컨텐츠를 제공 할 때 Apache가 최선의 선택이 아니므로 nginx가 더 적합합니다. http://lekensteyn.nl/index.html 을 테스트 문서로 사용하여 벤치 마크를 수행했습니다. 실제 페이지에서는 19 바이트가 현실적이지 않기 때문에 Jiving의 예제보다 큰 문서입니다. 결과는 놀랍습니다 .RPP는 심지어 내 노트북보다 성능이 뛰어납니다 (아마도 모든 종류의 커널 디버깅 스위치가 활성화되어 있기 때문일 수 있습니다).

다음은 Arch Linux (RPi access_log off,, 유선 이더넷) 에서 실행되는 nginx 1.4.1입니다 .

$ 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)

이것은 내 노트북 ​​( access_log off유선 이더넷)입니다.

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)

완전성을 위해 내 원격 서버. WAN 연결의 병목 현상이 발생하면 속도가 느려집니다 ( access_log꺼져 있지 않음).

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)

동시성 및 요청 수가 많을수록 더 많은 샘플을 포함 할 수 있기 때문에 숫자가 더 안정적이어야합니다 ( ab유선 / 무선 모드에서 랩톱에 대해 실행 하면 숫자가 크게 변동합니다). 액세스 로그를 사용하여 테스트 할 때 해당 파일 시스템 버퍼는 로그 디렉토리가 SD 카드에있을 때 예기치 않은 쓰기 지연을 유발합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.