当前位置: 首页 > 网络应用技术

Gunicorn vs Blask随附服务器:性能测试

时间:2023-03-06 21:37:17 网络应用技术

  在先前的实习期间,该小组中有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测试不是很好。尽管效果不如我预期的那样好,但我的辛辣鸡肉服务器上的胜利确实很明显。