Home > Backend Development > PHP Tutorial > nginx's http20 performance is incredible, HTTPS website performance optimization

nginx's http20 performance is incredible, HTTPS website performance optimization

WBOY
Release: 2016-07-29 09:01:00
Original
3487 people have browsed it

Background

We have seven load layers and use 5 physical machines with 24U+64G memory. Branch nginx does https encryption, decryption and proxy_pass. During commuting every day, the CPU of the five machines is basically around 50%, which is considered computing type.
Optimization methods: keepalive, TLS1.2 encryption algorithm optimization (reference: 1, 2), etc., but the effect is not great.
Let’s be particularly brief on the keepalive option. No matter how the server supports it, the key is that if the client doesn’t keep with you, you’re screwed.

Testing process

  • Hardware: 2 24U+64G physical machines, 1 for testing and 1 running ngx; In the same LAN, 1GB network card.
  • nginx -V:

    version: openresty/1.9.7.3
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
    built with OpenSSL 1.0.1e-fips 11 Feb 2013
    TLS SNI support enabled
    –with-http_v2_module

  • Apache’s ab stress testing tool: yum installation

  • boom is a stress testing tool that simulates ab’s golang implementation: https://github.com/rakyll/boo
  • nghttp2’s h2load pressure Testing tool: https://github.com/tatsuhiro-t/nghttp2
  • CentOS-7 64-bit
  • Test file size: 5k, 10k images, https test for static files.
  • A simple look at the parameters during the testing process: various combinations of -c=100~3000, -n=1k~10kw, when using h2load -m=1~1000 have been tried, the size of the -m range affects the http2 results Not so big.

Picture:

Put the traffic diagram and you will understand:

The picture below shows when using ab and boom:
nginxs http20 performance is incredible, HTTPS website performance optimization
At this time, both ab and boom use -k. No matter how you play, the measurement and time are approximately at this level.
For example, the following command basically takes half an hour to run:

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

When the parameters are unchanged and converted to http2:

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

h2load running results are as follows:
nginxs http20 performance is incredible, HTTPS website performance optimization

The following picture shows h2load when testing http2:
nginxs http20 performance is incredible, HTTPS website performance optimization
Gigabit network card, the outbound traffic is full.

Conclusion

The following conclusion has been tested repeatedly and represents only my own opinion. Please indicate from: toontong.

  1. Under the same number of concurrency, http2.0 only took 43 seconds to transmit 4.3G data; while http1 .1 took more than 40 minutes.
  2. In terms of transmission performance alone, the transmission performance has been improved by more than 10 times, and the effect on our key https CPU usage is very obvious.
  3. Of course, the overall performance of web services is not improved by 10 times. The reason is that it takes time to establish a connection. For more reasons, we need to study the http2 principle in depth.
  4. The http2-client library is supported only after go1.6. For lower versions of go, you can use https://github.com/tatsuhiro-t/go-nghttp2
  5. If http2.0 is really popular, it will affect the entire Internet traffic. Internet companies' machine savings are a great boon.

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

The above has introduced nginx's http20 performance which is incredible, HTTPS website performance optimization, including aspects of the content. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template