아파치의 경우 https와 http의 성능이 어느 정도입니까?


50

동일한 페이지에서 https와 비교했을 때 https의 성능 저하는 대략 얼마입니까? abc.php에 대해 1000 건의 요청을 처리 할 수 ​​있다고 가정 해 봅시다. https를 통해 액세스하면 얼마나 줄어 듭니까? 나는 이것이 하드웨어, 구성, OS 등에 의존 할 수 있다는 것을 알고 있지만 일반적인 경험 / 엄지 손가락 규칙을 찾고 있습니다.


2
이에 대한 대답을 보는 것이 좋을 것입니다.
Hyppy

답변:


57

빠른 & 더티 테스트를 위해 (즉, 최적화가 전혀 없습니다!) 로컬 Ubuntu 9.04 VM에서 http 및 https (자체 서명 인증서)를 사용하여 간단한 Ubuntu apache2 기본 웹 사이트 ( "작동합니다!")를 활성화하고 아파치를 실행했습니다. ab10,000 개의 요청이있는 벤치 마크 " "(동시성 없음) 클라이언트와 서버는 동일한 머신 / VM에있었습니다.

http ( " ab -n 10000 http://ubuntu904/index.html")에 대한 결과

  • 테스트 시간 : 2.664
  • 초당 요청 : 3753.69 (# / 초)
  • 요청 당 시간 : 0.266ms

https ( " ab -n 10000 https://ubuntu904/index.html")의 결과 :

  • 테스트 시간 : 107.673
  • 초당 요청 : 92.87 (# / 초)
  • 요청 당 시간 : 10.767ms

단일 요청 의 tcp / ip 통신을 면밀히 살펴보면 (예 : tcpdump 또는 wireshark로) HTTP 요청 에는 클라이언트와 서버 사이에 10 개의 패킷이 필요하지만 https는 16 : 필요합니다. 대기 시간은 https에 비해 훨씬 높습니다. 대기 시간의 중요성에 대한 자세한 내용은 여기를 참조 하십시오.

keep-alive ( ab옵션 -k)를 테스트에 추가하면 모든 요청이 동일한 연결을 공유하므로 SSL 오버 헤드가 낮아 지지만 https는 여전히 느리게 측정되므로 상황이 개선됩니다.

keep-alive ( " ")가있는 http 에 대한 결과ab -k -n 10000 http://ubuntu904/index.html

  • 테스트 시간 : 1.200
  • 초당 요청 : 8334.86 (# / 초)
  • 요청 당 시간 : 0.120ms

keep-alive ( " ")가있는 https의 결과 ab -k -n 10000 https://ubuntu904/index.html:

  • 테스트 시간 : 2.711
  • 초당 요청 : 3688.12 (# / 초)
  • 요청 당 시간 : 0.271ms

결론 :

  • 이 간단한 테스트 사례에서 https는 http보다 훨씬 느립니다.
  • https 지원을 활성화하고 웹 사이트 를 벤치마킹 하여 https 오버 헤드에 대한 지불 여부를 확인 하는 것이 좋습니다 .
  • wireshark를 사용하여 SSL 오버 헤드에 대한 인상을 얻으십시오.

1
+1 잘 했어. 숫자를 게시 해 주셔서 감사합니다.
MN

그 기계의 하드웨어에 대한 사양을 얻을 수 있습니까? 암호화는 프로세서 전원에 크게 의존합니다.
매트 시몬스

1
나는 최근에 VPS에 대해 많은 테스트를 수행했으며 성능에 영향을 준 가장 큰 것은 사용되는 암호였습니다. 암호를 128 비트로 제한하면 초당 약 500-600 개의 요청을받을 수 있습니다. 256 비트 암호를 사용하면 초당 100 개 미만의 요청으로 떨어집니다. 나는 내 자신의 테스트를했을 때 초당 30 건의 요청이라고 생각합니다. 실제 숫자는 기계에 따라 다릅니다.
kovert

Matt Simmons, 저는 2008 년 초 Mac Pro에서 2 개의 쿼드 코어 2.8GHz Intel Xeon CPU와 함께 실행되는 2 코어 64 비트 Ubuntu 9.04 VM (VMware Fusion)을 사용했습니다.
knweiss

귀하의 답변으로 20 초 이내에 종료 된 질문을 게시하지 못했습니다. 감사!
MonkeyZeus

10

최신 서버에서는 병목 현상이 암호화가 아닌 네트워크 및 응용 프로그램이 될 것이라고 말하고 싶습니다. 아파치의 TLS / SSL은 상당히 최적화 된 C로 작성되므로 특히 데이터베이스 액세스와 같은 작업을 수행하려는 경우 PHP 코드가 왜소합니다. 암호화가 전체 프로세스에서 더 큰 부분이되기 때문에 정적 파일을 제공하는 것이 더 큰 영향을 줄 것입니다. 나는 당신에게 구체적인 수치를 줄 수는 없지만 그것이 5 % 이상이고 아마도 2 %에 가까워지면 놀랄 것입니다.


2
David는 옳습니다. 콘텐츠의 종류에 따라 다릅니다. 좋은 방법은 아파치 벤치를 벤치마킹하는 것입니다 httpd.apache.org/docs/2.2/programs/ab.html
반경

암호화 속도 외에 서버 성능과 처리량에 영향을주는 SSL 핸드 셰이크는 어떻습니까?
erotsppa

SSL 핸드 셰이크는 연결 앞에 몇 개의 패킷을 추가합니다. 이로 인한 영향은 서버와 클라이언트 간의 연결 대기 시간에 따라 크게 달라집니다. HTTP 킵 얼라이브는이 핸드 쉐이킹의 영향을 줄입니다.
David Pashley


1

현대 하드웨어에서는 프로세서 (계산) 바운드보다 특정 트랜잭션에 대해 I / O 바운드 될 가능성이 높습니다. 압축 및 암호화에 관해 이야기 할 때 특히 그렇습니다. 요즘 128 비트 암호화는 사소한 일입니다. SSL을 사용하는 것보다 나가는 페이지를 작성하고 전달하는 것이 일반적으로 훨씬 더 어려워지고 있으며, 몇 년 동안 http와 https 트래픽의 성능에서 큰 차이를 느끼지 못했습니다.


1

나는 nginx에 대한 두 번째 권장 사항입니다. 내 테스트에서는 전용 SSL 오프로더로 잘 유지되었습니다.


0

물론 SSL 처리가 제대로 수행되지 않으면 언제든지 서버 외부에서 전용 상자로 이동할 수 있습니다. 여기에 nginx로 이것을 작성하는 좋은 글이 있습니다 . 이것은 고부하 계층 7로드 밸런싱 서버에서 수행 한 것입니다.


0

암호화에 대한 추가로드가 포함 된 다른 모든 요소 (스크립팅, 네트워크 등)에 비해 매우 작은 것을 확인할 수 있습니다.


0

내 경험상 일반적인 규칙은 공개 키의 크기 (예 : 2048, 4096, 8192)가 모두 상당히 오래 걸리는 것과 직접 관련이 있습니다. 그러나 데스크톱 환경의 차이는 거의 눈에 띄지 않지만 모바일에는 컴퓨팅 성능이 필요하기 때문에 차이점이 있습니다.

일반적으로 불행한 일이지만 SSL은 항상 큰 성능 저하를 가져옵니다.

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