nginx+tomcat与tomcat性能对比测试

1.硬件环境:

物理总内存:16G

物理CPU个数:2

CPU内核数:1

2.软件环境:

操作系统版本:CentOS release 6.9

jdk版本:jdk1.7.0_09

jfinal版本:jfinal-1.9

虚拟机配置:
JAVA_OPTS='-server -Xmx1024m -Xms1024m -Xss512k -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:+UseParNewG C -XX:+PrintGCDetails -Dcom.sun.management.jmxremote.port=8087 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false'

tomcat配置:

3.测试数据:

从另一台服务器使用apache的ab工具发送get请求,请求数据128字节,响应数据1024字节,不解析响应数据;分为2种模式,模式1是直接使用ab工具向tomcat发送请求,模式2是使用ab工具发送请求到nginx,由nginx转发请求到tomcat

模式1测试如下:

并发数
总请求数
CPU
成功次数
失败次数
请求速率
响应速率
平均响应时间(ms)
服务器状态
10 10000 70%~120% 10000 0 3595/s 3600/s 2.782 可用
50 50000 120%~140% 50000 0 4577/s 4600/s 10.924 可用
100 100000 120%~150% 100000 0 4833/s 4800/s 20.689 可用
150 150000 130%~170% 150000 0 5034/s 5100/s 29.798 可用
200 200000 130%~160% 200000 0 5106/s 5200/s 39.170 可用
250 250000 130%~150% 250000 0 5539/s 5500/s 45.138 可用

模式2测试如下:

并发数
总请求数
CPU
成功次数
失败次数
请求速率
响应速率
平均响应时间(ms)
服务器状态
10 10000 40%~60% 10000 0 2269/s 2270/s 4.407 可用
50 50000 70%~90% 50000 0 2944/s 2950/s 16.986 可用
100 100000 70%~100% 100000 0 3068/s 3100/s 32.593 可用
150 150000 80%~110% 150000 0 3179/s 3150/s 47.185 可用
200 200000 80%~110% 200000 0 3380/s 3400/s 59.166 可用
250 250000 90%~110% 250000 0 3592/s 3500/s 69.604 可用

结论:nginx+tomcat响应速度明显要低于直接请求tomcat,性能不如直接请求tomcat,但是nginx由于多了中间一层转发,使得请求压力不会一次性都集中在tomcat上,因此nginx+tomcat的CPU明显低于直接请求tomcat,也大大避免了因请求量过大导致tomcat服务不可用

你可能感兴趣的:(性能测试)