>백엔드 개발 >PHP 튜토리얼 >nginx의 http20 성능은 놀랍습니다. HTTPS 웹사이트 성능 최적화

nginx의 http20 성능은 놀랍습니다. HTTPS 웹사이트 성능 최적화

WBOY
WBOY원래의
2016-07-29 09:01:003493검색

배경

우리는 7개의 로드 계층을 갖고 있으며 24U 64G 메모리를 갖춘 5개의 물리적 머신을 사용합니다. Branch nginx는 https 암호화, 암호 해독 및 Proxy_pass를 수행합니다. 매일 출퇴근하는 동안 5대 기계의 CPU는 기본적으로 약 50% 수준이며 이는 컴퓨팅 유형으로 간주됩니다.
최적화 방법: keepalive, TLS1.2 암호화 알고리즘 최적화(참조: 1, 2) 등은 거의 효과가 없습니다.
서버가 이를 어떻게 지원하든 핵심은 클라이언트가 계속 유지하지 않으면 망할 것이라는 점입니다.

테스트 프로세스

  • 하드웨어: 24U 64G 물리적 머신 2개, 테스트용 1개, ngx 실행용 1개, 동일한 LAN, 1GB 네트워크 카드.
  • nginx -V:

    버전: openresty/1.9.7.3
    gcc 4.8.5 20150623(Red Hat 4.8.5-4)(GCC)에 의해 구축
    OpenSSL 1.0.1e-fips로 구축, 2013년 2월 11일
    TLS SNI 지원 활성화
    –with-http_v2_module

  • Apache의 ab 스트레스 테스트 도구: yum 설치

  • boom은 ab를 시뮬레이션하는 golang에 의해 구현된 스트레스 테스트 도구입니다: https //github.com/rakyll/boo
  • nghttp2의 h2load 스트레스 테스트 도구: https://github.com/tatsuhiro-t/nghttp2
  • CentOS-7 64비트
  • 테스트 파일 크기: 5k, 10k 이미지, 정적 파일에 대한 https 테스트.
  • 테스트 과정 중 매개변수를 간단히 살펴보면: -c=100~3000, -n=1k~10kw의 다양한 조합, h2load 사용 시 -m=1~1000이 시도됨, -m 범위 크기는 http2 결과에 거의 영향을 미치지 않습니다.

그림:

흐름도를 넣으면 이해가 될 것입니다.

아래 그림은 ab와 boom을 사용할 때를 보여줍니다.
nginx의 http20 성능은 놀랍습니다. HTTPS 웹사이트 성능 최적화
이때 ab, boom 모두 -k를 사용합니다. 어떻게 연주해도 측정치나 시간은 대략 이 수준입니다.
예를 들어, 다음 명령은 기본적으로 실행하는 데 30분이 걸립니다.

boom -c 1000 -n 1000000 -allow-insecure https://172.16.9.234/5k.jpg
ab -c 1000 -n 1000000 -khttps://172.16.9.234/5k.jpg

매개변수가 http2로 변경되지 않은 경우:

h2load -c 1000 -n 1000000 -m1 https://172.16.9.234/5k.jpg

h2load 실행 결과는 다음과 같습니다.
nginx의 http20 성능은 놀랍습니다. HTTPS 웹사이트 성능 최적화

다음 그림은 h2load 테스트를 보여줍니다. http2:
nginx의 http20 성능은 놀랍습니다. HTTPS 웹사이트 성능 최적화
기가비트 네트워크 카드, 아웃바운드 트래픽이 완전히 로드되었습니다.

결론

다음 결론은 반복적으로 테스트되었으며 내 의견만을 나타냅니다. toontong.

  1. 동일수, http2. 4.3G 데이터를 전송하는 데 43초 밖에 걸리지 않았지만 http1.1은 40분 이상 걸렸습니다.
  2. 전송 성능 측면에서 전송 성능이 10배 이상 향상되었으며, 당사의 주요 https CPU 사용량에 미치는 영향은 매우 분명합니다.
  3. 물론 웹 서비스의 전반적인 성능 향상이 10배는 아닙니다. 그 이유는 연결을 설정하는 데 시간이 걸리기 때문입니다. 더 많은 이유로 http2 원리를 깊이 있게 연구해야 합니다.
  4. http2-client 라이브러리는 go1.6 이후에만 지원됩니다. go 하위 버전의 경우 https://github.com/tatsuhiro-t/go-nghttp2
  5. http2가 정말 인기가 많다면 .0은 전체 인터넷 트래픽과 인터넷 기업의 머신 절약에 큰 도움이 됩니다.

').addClass('사전 번호 매기기').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); }); 위에서는 콘텐츠 측면을 포함하여 놀라운 HTTPS 웹사이트 성능 최적화인 nginx의 http20 성능을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.