【娱乐活动】jetty和nginx的性能差距

nginx配置文件

user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
        use epoll;
        worker_connections 10000;
        multi_accept on;
}

http {
        access_log off; #记录日志会导致性能下降

        #因为有buffered cache的原因,重复读取小文件并不会受disk io影响
        server { listen 8080; location / { root /; } } 
}

jetty测试代码

package jetty.performance;

import java.io.IOException;
import java.net.InetSocketAddress;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.AbstractHandler;

public class TestJetty extends AbstractHandler {

	@Override
	public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {
		response.getWriter().write("hello world");
		baseRequest.setHandled(true);
	}

	public static void main(String[] args) throws Exception {
		InetSocketAddress listen_addr = new InetSocketAddress("127.0.0.1", 9000);
		Server server = new Server(listen_addr);
		server.setHandler(new TestJetty());
		server.start();
		server.join();
	}

}

测试环境是阿里云的服务器,型号是ecs.n1.large,4核8G内存,ubuntu 14.04,java是oralce官方的jre 8 u112

首先是不使用keepalive,会频繁建立连接的方式

 ab -n 100000 -c 100 http://127.0.0.1:8080/index.html
This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        nginx/1.4.6
Server Hostname:        127.0.0.1
Server Port:            8080

Document Path:          /index.html
Document Length:        12 bytes

Concurrency Level:      100
Time taken for tests:   4.387 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      25000000 bytes
HTML transferred:       1200000 bytes
Requests per second:    22795.74 [#/sec] (mean)
Time per request:       4.387 [ms] (mean)
Time per request:       0.044 [ms] (mean, across all concurrent requests)
Transfer rate:          5565.37 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    2   0.3      2       4
Processing:     1    3   0.5      3       5
Waiting:        0    2   0.5      2       4
Total:          2    4   0.5      4       8

Percentage of the requests served within a certain time (ms)
  50%      4
  66%      4
  75%      5
  80%      5
  90%      5
  95%      6
  98%      6
  99%      7
 100%      8 (longest request)
 ab -n 100000 -c 100 http://127.0.0.1:9000/
This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        Jetty(9.3.z-SNAPSHOT)
Server Hostname:        127.0.0.1
Server Port:            9000

Document Path:          /
Document Length:        11 bytes

Concurrency Level:      100
Time taken for tests:   4.346 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      11800000 bytes
HTML transferred:       1100000 bytes
Requests per second:    23009.02 [#/sec] (mean)
Time per request:       4.346 [ms] (mean)
Time per request:       0.043 [ms] (mean, across all concurrent requests)
Transfer rate:          2651.43 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    2  41.4      1    1002
Processing:     0    2   4.2      1     400
Waiting:        0    1   4.2      1     399
Total:          0    4  41.6      2    1007

Percentage of the requests served within a certain time (ms)
  50%      2
  66%      2
  75%      2
  80%      3
  90%      3
  95%      4
  98%      5
  99%      6
 100%   1007 (longest request)

然后是带keep alive参数的结果

ab -n 100000 -c 100 -k http://127.0.0.1:8080/index.html
This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        nginx/1.4.6
Server Hostname:        127.0.0.1
Server Port:            8080

Document Path:          /index.html
Document Length:        12 bytes

Concurrency Level:      100
Time taken for tests:   0.905 seconds
Complete requests:      100000
Failed requests:        0
Keep-Alive requests:    99049
Total transferred:      25495245 bytes
HTML transferred:       1200000 bytes
Requests per second:    110440.74 [#/sec] (mean)
Time per request:       0.905 [ms] (mean)
Time per request:       0.009 [ms] (mean, across all concurrent requests)
Transfer rate:          27497.20 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       3
Processing:     0    1   0.7      1      10
Waiting:        0    1   0.7      1      10
Total:          0    1   0.7      1      10

Percentage of the requests served within a certain time (ms)
  50%      1
  66%      1
  75%      1
  80%      1
  90%      2
  95%      3
  98%      3
  99%      4
 100%     10 (longest request)
 ab -n 100000 -c 100 -k http://127.0.0.1:9000/
This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        Jetty(9.3.z-SNAPSHOT)
Server Hostname:        127.0.0.1
Server Port:            9000

Document Path:          /
Document Length:        11 bytes

Concurrency Level:      100
Time taken for tests:   1.297 seconds
Complete requests:      100000
Failed requests:        0
Keep-Alive requests:    100000
Total transferred:      14200000 bytes
HTML transferred:       1100000 bytes
Requests per second:    77092.32 [#/sec] (mean)
Time per request:       1.297 [ms] (mean)
Time per request:       0.013 [ms] (mean, across all concurrent requests)
Transfer rate:          10690.54 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       3
Processing:     0    1   4.2      0      53
Waiting:        0    1   4.2      0      53
Total:          0    1   4.2      0      53

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%      0
  90%      1
  95%     12
  98%     17
  99%     20
 100%     53 (longest request)

转载于:https://my.oschina.net/visualgui823/blog/816038

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值