鲲鹏服务器利用wrk工具测试Nginx性能
本文介绍性能测试相关知识,列出了常用的http性能测试工具,介绍Nginx,然后通过测试工具之一wrk对Nginx进行性能测试。
性能测试介绍
1、 什么是性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
2、 性能测试的目标是什么
性能测试最终的目的,是找到系统的瓶颈,一般来说,是找到服务单机最大TPS(每秒完成的事务数)。需要注意的是,服务的TPS需要结合请求平均耗时来综合考虑。例如:服务TPS压到1000,平均请求耗时500ms,但是假如我们定的服务请求耗时不能超过200ms,那么这个1000的TPS是无效的。
很多场景下,服务都会设置超时时间,若平均耗时超过此超时时间,则可认为服务处于不可用状态。
常见的http性能测试工具
httpload、wrk、apache bench
工具 | 优点 | 缺点 |
httpload | 简单易用 | 压测结果指标较少 |
wrk | 简单易用,异步IO模型,能压到非常高的并发 | |
apache bench | 简单易用 |
通过优缺点介绍,我们看到wrk更胜一筹,下面我们采用wrk,对Tomcat进行性能测试。
Nginx介绍
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
利用wrk对Nginx进行压力测试
1、 安装准备
华为云购买一台鲲鹏服务器(wrk和Nginx部署在同一台鲲鹏服务器上,当然也可以部署在不同的服务器上)
本文以云服务器KC1实例搭建,云服务器配置如表1-1所示。
表1-1 云服务器配置
项目 | 说明 |
规格 | kc1.large.2 | 2vCPUs | 4GB |
磁盘 | 系统盘:高IO(40GB) |
操作系统要求如表1-2所示。
表1-2 操作系统要求
项目 | 说明 | 下载地址 |
CentOS | 7.6 | 在公共镜像中已提供。 |
Kernel | 4.14.0-115 | 在公共镜像中已提供。 |
2、 部署Nginx
鲲鹏社区软件栈已经有部署文档,请参考
https://www.huaweicloud.com/kunpeng/software/nginx.html
3、 部署wrk
鲲鹏社区软件栈已经有部署文档,请参考
https://www.huaweicloud.com/kunpeng/software/wrk.html
4、 性能测试:
终端输入如下命令:
wrk -t12 -c100 -d30s http://127.0.0.1 或者
wrk -t12 -c100 -d30s http://云服务器公网IP
说明:
模拟12个线程、100次连接、压力测试持续10秒,测试“http://127.0.0.1”
页面的性能,端口默认80,可不写,wrk对本地安装的Nginx进行性能测试。
返回结果:
结果说明:
Avg Stdev Max +/- Stdev
(平均值) (标准差)(最大值)(正负一个标准差所占比例)
Latency:延迟
Req/Sec:处理中的请求数
1011584 requests in 30.04s, 819.97MB read (30.01秒内共处理完成了514174个请求,读取了819.97MB数据)
Requests/sec: 33676.74 (平均每秒处理完成33676.74个请求)
Transfer/sec: 27.30MB (平均每秒读取数据27.30MB)
- 点赞
- 收藏
- 关注作者
评论(0)