在先前的实习期间,该小组中有Python编写的项目。部署方法是Nginx + Gunicorn。根据该小组的正式工作,这可能会增加并发性,因此我使用它。但是我一直想自己测试它,看看枪支的何处。与Jmeter的烧瓶。
让我们首先谈论WSGI。WSGI是什么?Web服务器网关接口(Python Web服务器网关接口(缩写为WSGI)是Web服务器与为Python语言定义的Web应用程序或框架之间的简单通用接口。
我们通常写的烧瓶的业务代码是Web应用程序。它无法处理客户发出的HTTP请求。它需要实施WSGI来帮助处理HTTP请求的服务器,以便HTTP请求成为处理表单之前要处理表单的一种形式。给服务器提供给服务器,并在包装此结果后将服务器封装给客户端。这样,您可以专注于编写业务代码。您无需考虑如何解析HTTP请求以及如何封装HTTP回复。这些是服务器的工作。
Gunicorn是这样的HTTP服务器,它实现了WSGI。它在烧瓶和客户端之间具有翻译角色,并且与烧瓶自己的服务器相比,并发性能良好。
有人说,我通常不知道WSGI用来使用烧瓶。如何运行代码?那是因为烧瓶有一个小服务器。
此输出信息绝对不是不熟悉的。据说这是用于开发的服务器。不要将其用于生产部署。
阿里巴巴云的最便宜的学生折扣服务器(因为枪支只能在Linux系统上使用)
Xshell用于连接到云服务器,Jmeter用于压力测试,烧瓶框架用于编写业务代码,Python3,消失。
Gunicorn可以从命令行或配置文件开始。我使用命令行从这里开始:
,,,,
这是过程的数量。Worker-class是枪支的运行模式(枪支具有四个模式,-d是背景运行,您看不到输出), - 线程是每个过程的每个过程的线程数。是应用程序的名称。我的烧瓶文件命名为testflask.py.py.simall,我更改了中间的许多参数。
这就是将名称更改为您自己的烧瓶文件名的方式。
对于Jmeter设置参数,我主要测试线程和周期的数量。时间为一分钟。如何不重复安装Jmeter。
设置测试计划后,运行,您可以使用此命令在命令行中运行Jmeter测试计划:
稍后与您生成的JMX文件;
后来,与您一起测试报告的TXT文件的路径;
稍后,您存储Web版本报告的路径。
烧瓶代码非常简单:
其他一些命令:用于查找正在运行的Python进程,并在发现后,杀死后,从而更改参数。
一开始,我没有并发概念。我将这个数字的请求非常温和。结果,枪支和烧瓶自己的服务器之间没有区别。枪支还挂了两个。
该报告与Jmeter生成。上图是烧瓶附带的服务器,以下是枪枪(以下是订单)。
几乎。
我决定增加药物量,将线程数设置为5000,然后将循环设置为3,并在一分钟内发送15,000个请求。首先查看烧瓶服务器:
可以看出,有67.06%的要求失败了。
可以看出,无论是成功率还是吞吐量(吞吐量,每秒处理的交易数量)。我认为这可能都是成功的 /(ㄒoㄒ) /~~
接下来,我在默认模式下对工人和线程的数量进行了各种尝试,输出结果总是相似的。GEVENT模式据说更大程度地是同时同时进行的,并尝试了工人和工人的控制(每个工人的最大连接数),但结果几乎是相同的/(ㄒoㄒ)/~~
可能是阿里巴巴云的折扣的最低配置服务器的范围越多(机器越好,多功能过程和多线程的功能越强大),或者我的jmeter测试不是很好。尽管效果不如我预期的那样好,但我的辛辣鸡肉服务器上的胜利确实很明显。