답변:
빠른 & 더티 테스트를 위해 (즉, 최적화가 전혀 없습니다!) 로컬 Ubuntu 9.04 VM에서 http 및 https (자체 서명 인증서)를 사용하여 간단한 Ubuntu apache2 기본 웹 사이트 ( "작동합니다!")를 활성화하고 아파치를 실행했습니다. ab
10,000 개의 요청이있는 벤치 마크 " "(동시성 없음) 클라이언트와 서버는 동일한 머신 / VM에있었습니다.
http ( " ab -n 10000 http://ubuntu904/index.html
")에 대한 결과
https ( " ab -n 10000 https://ubuntu904/index.html
")의 결과 :
단일 요청 의 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
keep-alive ( " ")가있는 https의 결과 ab -k -n 10000 https://ubuntu904/index.html
:
결론 :
최신 서버에서는 병목 현상이 암호화가 아닌 네트워크 및 응용 프로그램이 될 것이라고 말하고 싶습니다. 아파치의 TLS / SSL은 상당히 최적화 된 C로 작성되므로 특히 데이터베이스 액세스와 같은 작업을 수행하려는 경우 PHP 코드가 왜소합니다. 암호화가 전체 프로세스에서 더 큰 부분이되기 때문에 정적 파일을 제공하는 것이 더 큰 영향을 줄 것입니다. 나는 당신에게 구체적인 수치를 줄 수는 없지만 그것이 5 % 이상이고 아마도 2 %에 가까워지면 놀랄 것입니다.
암호화에 대한 추가로드가 포함 된 다른 모든 요소 (스크립팅, 네트워크 등)에 비해 매우 작은 것을 확인할 수 있습니다.
내 경험상 일반적인 규칙은 공개 키의 크기 (예 : 2048, 4096, 8192)가 모두 상당히 오래 걸리는 것과 직접 관련이 있습니다. 그러나 데스크톱 환경의 차이는 거의 눈에 띄지 않지만 모바일에는 컴퓨팅 성능이 필요하기 때문에 차이점이 있습니다.
일반적으로 불행한 일이지만 SSL은 항상 큰 성능 저하를 가져옵니다.