openresty性能测试报告分析

 

1|01、openresty介绍


1|1一、什么是openresty


经过揉和众多设计良好的 Nginx 模块,OpenResty 有效地把 Nginx 服务器转变为一个强大的 Web 应用服务器,基于它开发人员可使用 Lua 编程语言对 Nginx 核心以及现有的各类 Nginx C 模块进行脚本编程,构建出能够处理一万以上并发请求的极端高性能的 Web 应用。

1|2二、为何选择 Nginx


一、处理响应请求很快
二、高并发链接
三、低的内存消耗
四、具备很高的可靠性:
五、高扩展性
六、热部署
七、自由的 BSD 许可协议html

1|3三、openresty架构模型


Nginx 采用的是 master-worker 模型,一个 master 进程管理多个 worker 进程,基本的事件处理都是放在 woker 中,master 负责一些全局初始化,以及对 worker 的管理。在OpenResty中,每一个 woker 使用一个 LuaVM,当请求被分配到 woker 时,将在这个 LuaVM 里建立一个 coroutine(协程)。协程之间数据隔离,每一个协程具备独立的全局变量_G。sql

ps. 协程和多线程下的线程相似:有本身的堆栈,本身的局部变量,有本身的指令指针,可是和其余协程程序共享全局变量等信息。线程和协程的主要不一样在于:多处理器的状况下,概念上来讲多线程是同时运行多个线程,而协程是经过代码来完成协程的切换,任什么时候刻只有一个协程程序在运行。而且这个在运行的协程只有明确被要求挂起时才会被挂起。编程

架构图以下:tomcat

 
www.wityx.com
架构模型

OpenResty的优点服务器

首先咱们选择使用OpenResty,其是由Nginx核心加不少第三方模块组成,其最大的亮点是默认集成了Lua开发环境,使得Nginx能够做为一个Web Server使用。多线程

借助于Nginx的事件驱动模型和非阻塞IO,能够实现高性能的Web应用程序。架构

并且OpenResty提供了大量组件如Mysql、 Redis、Memcached等等,使在Nginx上开发Web应用更方便更简单。目前在京东如实时价格、秒杀、动态服务、单品页、列表页等都在使用Nginx+Lua架构,其余公司如淘宝、去哪儿网等。

2|02、openresty性能对比图例


2|1一、情景一:


压测介绍: 一、机器 压测机:3台物理机,配置 cpu: 40核 内存: 31G 被测机:1台物理机,配置 cpu: 40核 内存: 31G 被测机 JVM默认配置 二、测试方式 并发数压测,并发数从低往高进行压测

二、压测结果并发

openresty性能图编程语言

 
www.wityx.com
性能图.png

 

 
www.wityx.com
曲线图.png

tomcat性能图高并发

 
www.wityx.com
性能图.png

 

 
www.wityx.com
曲线图.png

三、压测分析
从压测结果看,在并发数场景一致的状况下,随着压测并发数据的增长,openresty的MRT更加稳定,
始终维持到0.35左右,而tomcat的性能随着并发数的增长,性能也快速降低,openresty的MRT只有
tomcat的1/10左右。

2|2二、情景二:


压测介绍:
一、机器
压测机:3台物理机,配置 cpu: 40核 内存: 31G;3台云主机,配置cpu: 8核 内存: 16G
被测机:1台物理机,配置 cpu: 40核 内存: 31G 被测机JVM默认配置
二、测试方式
增长请求量,

二、压测结果
openresty性能图

 
www.wityx.com
性能图.png

 

 
www.wityx.com
曲线图.png

tomcat

 
www.wityx.com
性能图.png

 

 
www.wityx.com
曲线图.png

三、压测分析
从对比来看随着机器增多,tomcat的TPS都有所增长,可是tomcat没有openresty增长的明显,同时openresty的MRT依然在1ms如下,比tomcat要小。

2|3三、场景三:


压测介绍:
一、机器
压测机:3台物理机,配置 cpu: 40核 内存: 31G;3台云主机,配置cpu: 8核 内存: 16G
被测机:1台物理机,配置 cpu: 40核 内存: 31G 被测机JVM默认配置
压测结果
一、并发数300的曲线对比

 
www.wityx.com
openrestyTPS-RT曲线.png

 

 
www.wityx.com
tomcatTPS-RT曲线.png

二、对比数2000的曲线对比

 

 
www.wityx.com
openrestyTPS-RT曲线.png
 
www.wityx.com
tomcatTPS-RT曲线.png

压测分析
从图中能够看出,在压测条件一致的状况下,openresty的TPS曲线更加稳定,稳定性更高

2|4四、场景四:


压测介绍:
一、机器
压测机:3台物理机,配置 cpu: 40核 内存: 31G
被测机:1台物理机,配置 cpu: 40核 内存: 31G 被测机JVM默认配置
二、测试方式
交叉对比

 
www.wityx.com
性能图.png
 
www.wityx.com
性能曲线对比.png

压测介绍:
一、机器
压测机:3台物理机,配置 cpu: 40核 内存: 31G;3台云主机,配置cpu: 8核 内存: 16G
被测机:1台物理机,配置 cpu: 40核 内存: 31G
二、测试方式
交叉对比

 
www.wityx.com
性能图.png

 

 
www.wityx.com
性能曲线对比.png

2|5五、场景五:


一、内存使用率对比:

 

 
www.wityx.com
openresty内存使用率.png
 
www.wityx.com
tomcat内存使用率.png
 
www.wityx.com
使用率对比图.png

二、CPU占用率的对比

 

 
www.wityx.com
openrestyCPU使用率.png
 
www.wityx.com
tomcatCPU使用率.png
 
www.wityx.com
使用率对比.png

3|03、openresty性能分析报告总结


一、在并发度比较低的状况下,好比200一下,openresty和tomcat的性能差异不大,openresty的性能主要体如今占用更小的内存,性能更加稳定;二、在并发量不断增大,请求量不断增大的状况下,openresty的处理能力更快,不但能够占用更小的内存,还能够保持很小的TPS,获取更高的QPS,性能也更加稳定;三、openresty在内存使用率,CPU占用率等方面性能要更好;

相关文章
相关标签/搜索