Python应用服务器(Bjoern vs Gunicorn)

Python应用服务器(Bjoern vs Gunicorn),python,performance,webserver,gunicorn,bjoern,Python,Performance,Webserver,Gunicorn,Bjoern,我正在对python WSGI应用程序服务器进行基准测试 我经营的bjoern如下: bjoern.run(wsgi_app, host, port) 和Gunicorn本身: gunicorn -w 2 --bind 0.0.0.0:5000 gun_server:wsgi_app --log-level=DEBUG --timeout 90 然而,我发现Bjoern处理的请求数量是Gunicorn的一半。我正在进行基准测试的节点有2个vCPU 根据迄今为止发表的许多文章(例如) 与Gun

我正在对python WSGI应用程序服务器进行基准测试

我经营的bjoern如下:

bjoern.run(wsgi_app, host, port)
和Gunicorn本身:

gunicorn -w 2 --bind 0.0.0.0:5000 gun_server:wsgi_app --log-level=DEBUG --timeout 90
然而,我发现Bjoern处理的请求数量是Gunicorn的一半。我正在进行基准测试的节点有2个vCPU

根据迄今为止发表的许多文章(例如) 与Gunicorn相比,Bjoern应该在每秒处理多个请求方面做得更好

遵循这一点,使Bjoren能够在多个内核上运行

然而,Bjoern处理的请求仍然比Gunicorn处理的请求多一点

比约伦似乎在使用多核:

vin@TEST:~/api/src$ ps -U $USER -o pid,psr,comm | grep python
27880   1 python
27921   1 python
27922   1 python
vin@TEST:~/api/src$ ps -U $USER -o pid,psr,comm | grep python
27880   1 python
27921   1 python
27922   0 python
vin@TEST:~/api/src$ ps -U $USER -o pid,psr,comm | grep python
27880   1 python
27921   1 python
27922   1 python
vin@TEST:~/api/src$ ps -U $USER -o pid,psr,comm | grep python
27880   1 python
27921   1 python
27922   1 python
vin@TEST:~/api/src$ ps -U $USER -o pid,psr,comm | grep python
27880   1 python
27921   0 python
27922   0 python
你知道如何调试这个吗

[更新]
我使用的是3.2.0-115-virtual,它不支持SO_重用端口。这会严重影响请求/秒吗?

Bjoern使用一个内核,gunicorn使用两个内核。
因此,gunicorn处理(约2倍)多的请求是有道理的。

Bjoern使用一个核心,gunicorn使用两个核心。
因此,gunicorn处理(约2倍)的请求是有道理的。

是的,谢谢,注意到了。我已经使用os.fork()更新了代码。基准测试目前正在运行。接下来是:然而,Bjoern处理的请求仍然是Gunicorn的一半。我应该如何调试它?python有两个进程(27880)─┬─python(27921)└─python(27922)我注意到的另一件事是,我在Linux 3.2上,不支持SO_REUSEPORT。这会严重影响每秒的请求吗?是的,谢谢,注意到了。我已经使用os.fork()更新了代码。基准测试目前正在运行。接下来是:然而,Bjoern处理的请求仍然是Gunicorn的一半。我应该如何调试它?python有两个进程(27880)─┬─python(27921)└─python(27922)我注意到的另一件事是,我在Linux 3.2上,不支持SO_REUSEPORT。这会严重影响每秒的请求吗?