博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web 缓存服务器 HTTP2 性能测试: nuster vs nginx
阅读量:5973 次
发布时间:2019-06-19

本文共 4884 字,大约阅读时间需要 16 分钟。

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

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                    = 9999999fs.nr_open                     = 9999999net.core.netdev_max_backlog    = 4096net.core.rmem_max              = 16777216net.core.somaxconn             = 65535net.core.wmem_max              = 16777216net.ipv4.ip_forward            = 0net.ipv4.ip_local_port_range   = 1025       65535net.ipv4.tcp_fin_timeout       = 30net.ipv4.tcp_keepalive_time    = 30net.ipv4.tcp_max_syn_backlog   = 20480net.ipv4.tcp_max_tw_buckets    = 400000net.ipv4.tcp_no_metrics_save   = 1net.ipv4.tcp_syn_retries       = 2net.ipv4.tcp_synack_retries    = 2net.ipv4.tcp_tw_recycle        = 1net.ipv4.tcp_tw_reuse          = 1net.ipv4.tcp_timestamps        = 1vm.min_free_kbytes             = 65536vm.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 1000defaults    retries 3    maxconn 1000000    option redispatch    option dontlognull    timeout client  300s    timeout connect 300s    timeout server  300s    http-reuse alwaysfrontend web1    bind *:8081 ssl crt asdf.pem alpn h2,http/1.1    mode http    default_backend app1backend 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/helloworldfinished in 29.51s, 338924.15 req/s, 48.81MB/srequests: 10000000 total, 10000000 started, 10000000 done, 10000000 succeeded, 0 failed, 0 errored, 0 timeoutstatus codes: 10000000 2xx, 0 3xx, 0 4xx, 0 5xxtraffic: 1.41GB (1510024000) total, 1.13GB (1210000000) headers (space savings 34.24%), 114.44MB (120000000) data                     min         max         mean         sd        +/- sdtime 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/helloworldfinished in 90.56s, 110419.16 req/s, 15.62MB/srequests: 10000000 total, 10000000 started, 10000000 done, 10000000 succeeded, 0 failed, 0 errored, 0 timeoutstatus codes: 10000000 2xx, 0 3xx, 0 4xx, 0 5xxtraffic: 1.38GB (1482955210) total, 1.10GB (1182906210) headers (space savings 35.01%), 114.44MB (120000000) data                     min         max         mean         sd        +/- sdtime 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%

转载地址:http://rudox.baihongyu.com/

你可能感兴趣的文章
Apache整合Tomcat
查看>>
浏览器 HTTP 协议缓存机制详解
查看>>
Linux 下使用 NMON 分析系统性能(转载+实战)
查看>>
【总结】冒泡排序及冒泡排序的两种优化
查看>>
网络配置管理之ip、ss、配置文件、网卡命名规则、nmcli
查看>>
搞一个汉字拼音库
查看>>
Pg异步复制系统Bucardo
查看>>
正则---基础
查看>>
惠普联手VMware共推桌面云解决方案
查看>>
panabit一款流量监管软件
查看>>
mysql基本常识整理
查看>>
windows server 2008 平台cluster+SQL2008部署<1>
查看>>
python中执行命令的3种方法小结
查看>>
Intel boards with integrated Matrox MGA G200 video will require VESA driver on 32bit RHEL 5
查看>>
mysql的登录管理
查看>>
Informatica 9.5.1实验记录
查看>>
Linux系统环境crontab定时任务设置参数实例及常用技巧
查看>>
VMware vSAN分布式存储安装配置
查看>>
linux下将不同线程绑定到不同core和cpu上 pthread_setaffinity_np
查看>>
远程桌面体验注意事项
查看>>