每秒50万次请求 你的Web服务器能办到吗?

现在的 HTTP 服务器性能非常之高,在一些老的服务器上一样可以有非常棒的表现,下面是对 Nginx 1.0.14 自带的默认首页进行压力测试的结果,图表显示每秒请求数和并发连接数:

在这张图中 Nginx 的最高处理能力达到每秒 50w 的请求数处理,而且在并发是 1000 的情况下其延迟只是 1.5 毫秒。

该图表显示了平均的每秒请求数,使用的命令是:

wrk -t 10 -c N -r 10m http://localhost:8080/index.html

其中 N 值为并发连接数,测试工具是 wrk

硬件配置:

两个 Intel Xeon X5670 处理器,24G 内存,X5670 有 6 核@2.93Ghz,每个核两个超线程,/proc/cpuinfo 显示 24 个 CPU。

软件环境:

操作系统 Ubuntu 11.10 运行 Linux 3.0.0-16-generic #29-Ubuntu SMP Tue Feb 14 12:48:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux.

下面是对内核参数的调整:

view source

print?
1echo "2048 64512" > /proc/sys/net/ipv4/ip_local_port_range
2echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
3echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
4echo "10" > /proc/sys/net/ipv4/tcp_fin_timeout
5 
6echo "65536" > /proc/sys/net/core/somaxconn
7echo "65536" > /proc/sys/net/ipv4/tcp_max_syn_backlog  
8 
9echo "262144" > /proc/sys/net/netfilter/nf_conntrack_max

HTTP 服务器是 nginx 1.0.14 ,没有使用任何特别的构建参数: ./configure && make, objs/nginx -p . -c nginx.conf.

nginx.conf 配置如下:

view source

print?
01worker_processes     16;
02worker_rlimit_nofile 262144;
03  
04daemon off;
05  
06events {
07  use epoll;
08  worker_connections 16384;
09}
10  
11error_log error.log;
12pid /dev/null;
13  
14http {
15  sendfile   on;
16  tcp_nopush on;
17  
18  keepalive_requests 100;
19  
20  open_file_cache max=100;
21  
22  gzip            off;
23  gzip_min_length 1024;
24  
25  access_log off;
26  
27  server {
28    listen *:8080 backlog=16384;
29  
30    location / {
31      root   html;
32      index  index.html;
33    }
34  }
35}

本文来源于DOIT传媒,文章内容仅供参考,不构成投资建议。

赞 ()

相关推荐

发表回复

评论列表

点击查看更多

    联系我们

    微信:百易小助手

    邮件:contact@doit.com.cn

    工作时间:周一至周五,9:30-18:30,节假日休息

    微信