Opened 3 months ago
#2679 new defect
Low throughput with HTTP/3
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | http/3 | Version: | 1.25.x |
Keywords: | Cc: | ||
uname -a: | Linux marlon-test-jnb 5.15.0-117-generic #127-Ubuntu SMP Fri Jul 5 20:13:28 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux | ||
nginx -V: |
nginx/1.26.1
built with OpenSSL 3.0.2 15 Mar 2022 TLS SNI support enabled configure arguments: --with-cc-opt='-g -O2 -ffile-prefix-map=/build/nginx-ufANOL/nginx-1.26.1=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -flto=auto -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-compat --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_v3_module --with-http_gzip_static_module --with-http_perl_module --with-threads --with-file-aio --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --without-select_module --without-poll_module --without-http_ssi_module --without-http_userid_module --without-http_mirror_module --without-http_autoindex_module --without-http_split_clients_module --without-http_referer_module --without-http_uwsgi_module --without-http_scgi_module --without-http_grpc_module --without-http_memcached_module --without-http_empty_gif_module --without-http_browser_module --without-http_upstream_hash_module --without-http_upstream_ip_hash_module --without-http_upstream_least_conn_module --without-http_upstream_random_module --without-http_upstream_zone_module |
Description
Hi there,
I am experiencing a significant difference in throughput performance when downloading files using HTTP/3 compared to HTTP/2 on the same server. Below are the results from my tests:
HTTP2:
# curl -k --http2 -o /dev/null 'https://marlon-test-jnb.tempurl.host/ubuntu_100m.iso' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 100M 100 100M 0 0 87.5M 0 0:00:01 0:00:01 --:--:-- 87.5M
HTTP/3:
# curl -k --http3-only -o /dev/null 'https://marlon-test-jnb.tempurl.host/ubuntu_100m.iso' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 100M 100 100M 0 0 6258k 0 0:00:16 0:00:16 --:--:-- 6395k
All using the default settings. Raising http3_stream_buffer_size from the default 64k to 128k or 256k helps, but never achieve as good as HTTP/2.
I've tested with stable 1.26.1 (compiled) and also mainline 1.27.0 (from nginx.org). Also tested the download with Google Chrome and the speeds matched curl.
I've attached the error.log with debug enabled during the download and the nginx.conf.
Are there any additional parameters or configurations that I can adjust to improve HTTP/3 throughput to be on par with HTTP/2? Any guidance would be greatly appreciated.
Thank you in advance,
Marlon
Attachments (2)
Change History (2)
by , 3 months ago
Attachment: | nginx.conf added |
---|
by , 3 months ago
Attachment: | error_truncated.log.gz added |
---|