web 缓存服务器 HTTP2 性能测试: nuster vs nginx - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
sajesemuy
V2EX    程序员

web 缓存服务器 HTTP2 性能测试: nuster vs nginx

 
  •   sajesemuy
    jiangwenyuan 2018-06-13 08:48:45 +08:00 2690 次点击
    这是一个创建于 2736 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简单的用 h2load测试了nuster和 nginx 的 http/2 下的缓存性能,结果显示 RPS (每秒请求数) nuster 差不多是 nginx 的 3 倍

    https://github.com/jiangwenyuan/nuster

    data size | CONN | nuster | nginx --------- | ---- | ------ | ----- 12(hello world) | 1000 | 338924 | 110419 

    测试环境

    服务器

    两台 linux 服务器:一台测试服务器 server129, 一台缓存服务器 server130.

    Server | port | app ------ | ---- | --- 10.0.0.129 | | wrk 10.0.0.129 | 8080 | nginx, origin web server 10.0.0.130 | 8081 | nuster, all cores 10.0.0.130 | 8083 | nginx, all cores 

    硬件

    • Intel(R) Xeon(R) CPU X5650 @ 2.67GHz(12 cores)
    • RAM 32GB
    • 1Gbps ethernet card

    软件

    • CentOS: 7.4.1708 (Core)
    • h2load: nghttp2/1.30.0
    • nginx: nginx/1.14.0
    • nuster: nuster/1.8.8.2

    系统设置

    /etc/sysctl.conf

    fs.file-max = 9999999 fs.nr_open = 9999999 net.core.netdev_max_backlog = 4096 net.core.rmem_max = 16777216 net.core.somaxcOnn= 65535 net.core.wmem_max = 16777216 net.ipv4.ip_forward = 0 net.ipv4.ip_local_port_range = 1025 65535 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 30 net.ipv4.tcp_max_syn_backlog = 20480 net.ipv4.tcp_max_tw_buckets = 400000 net.ipv4.tcp_no_metrics_save = 1 net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_timestamps = 1 vm.min_free_kbytes = 65536 vm.overcommit_memory = 1 

    /etc/security/limits.conf

    * soft nofile 1000000 * hard nofile 1000000 * soft nproc 1000000 * hard nproc 1000000 

    配置文件

    nuster, all cores

    global maxconn 1000000 nuster cache on data-size 1g daemon nbproc 12 tune.maxaccept -1 tune.ssl.default-dh-param 2048 tune.h2.max-concurrent-streams 1000 defaults retries 3 maxconn 1000000 option redispatch option dontlognull timeout client 300s timeout connect 300s timeout server 300s http-reuse always frontend web1 bind *:8081 ssl crt asdf.pem alpn h2,http/1.1 mode http default_backend app1 backend app1 balance roundrobin mode http nuster cache on nuster rule all ttl 0 server a2 10.0.0.129:8080 

    nginx, all cores

    user nginx; worker_processes auto; worker_rlimit_nofile 1000000; error_log /var/log/nginx/errorall.log warn; pid /var/run/nginxall.pid; events { worker_connections 1000000; use epoll; multi_accept on; } http { include /etc/nginx/mime.types; default_type application/octet-stream; access_log off; sendfile on; server_tokens off; keepalive_timeout 300; keepalive_requests 100000; tcp_nopush on; tcp_nodelay on; client_body_buffer_size 128k; client_header_buffer_size 1m; large_client_header_buffers 4 4k; output_buffers 1 32k; postpone_output 1460; open_file_cache max=200000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on; proxy_cache_path /tmp/cache_all levels=1:2 keys_zOne=STATIC:10m inactive=24h max_size=1g; server { listen 8083 ssl http2; ssl on; ssl_session_cache shared:SSL:5m; ssl_session_timeout 1h; http2_max_concurrent_streams 1000; http2_max_requests 10000000; ssl_certificate a.pem; ssl_certificate_key a.key; location / { proxy_pass http://10.0.0.129:8080/; proxy_cache STATIC; proxy_cache_valid any 1d; } } } 

    测试

    nuster

    $ h2load -n 10000000 -c 1000 -m 1000 -t 1000 https://10.0.0.130:8081/helloworld finished in 29.51s, 338924.15 req/s, 48.81MB/s requests: 10000000 total, 10000000 started, 10000000 done, 10000000 succeeded, 0 failed, 0 errored, 0 timeout status codes: 10000000 2xx, 0 3xx, 0 4xx, 0 5xx traffic: 1.41GB (1510024000) total, 1.13GB (1210000000) headers (space savings 34.24%), 114.44MB (120000000) data min max mean sd +/- sd time for request: 14.51ms 3.21s 2.53s 500.02ms 74.50% time for connect: 61.12ms 1.26s 672.73ms 332.30ms 63.50% time to 1st byte: 95.03ms 3.74s 2.68s 777.51ms 74.00% req/s : 339.11 459.68 358.92 17.35 76.20% 

    nginx

    $ h2load -n 10000000 -c 1000 -m 1000 -t 1000 https://10.0.0.130:8083/helloworld finished in 90.56s, 110419.16 req/s, 15.62MB/s requests: 10000000 total, 10000000 started, 10000000 done, 10000000 succeeded, 0 failed, 0 errored, 0 timeout status codes: 10000000 2xx, 0 3xx, 0 4xx, 0 5xx traffic: 1.38GB (1482955210) total, 1.10GB (1182906210) headers (space savings 35.01%), 114.44MB (120000000) data min max mean sd +/- sd time for request: 3.98ms 14.65s 5.14s 3.67s 70.30% time for connect: 69.96ms 6.74s 1.35s 1.08s 88.90% time to 1st byte: 114.92ms 15.46s 5.67s 4.06s 63.40% req/s : 110.43 5143.28 378.40 590.47 92.50% 
    3 条回复    2018-06-13 09:29:54 +08:00
    a7a2
        1
    a7a2  
       2018-06-13 09:14:46 +08:00
    proxy_cache STATIC;//对这个表示有无缓存所有请求表示疑问

    最简单的测试就能证明,写一个输出 hello world 的 htp 服务 测试一下对比就知道,应该比以上 cache 都要高一点点的

    但是不太相信差距这么大
    a7a2
        2
    a7a2  
       2018-06-13 09:19:29 +08:00
    在测试 10 秒后把 https://10.0.0.130:8083/helloworld 关闭了 ,保留 nginx 这个代理看成绩有无较大变化,测试结束浏览器请求一下看看是否还有缓存输出。
    sajesemuy
        3
    sajesemuy  
    OP
       2018-06-13 09:29:54 +08:00
    @a7a2 有缓存,欢迎测试:)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5233 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 06:57 PVG 14:57 LAX 22:57 JFK 01:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86