django5生产级部署和并发测试(开发者服务器和uvicorn服务器)
创始人
2025-01-18 06:33:12
0

目录

    • 1. 创建django项目
    • 2. 安装压力测试工具
    • 3. 安装生产级服务器uvicorn
    • 4. 多进程部署

1. 创建django项目

在桌面创建一个名为django_test的项目:

django-admin startproject django_test 

然后使用cd命令进入django_test文件夹内,使用开发者服务器运行项目:

 python manage.py runserver 

启动后,使用浏览器访问http://127.0.0.1:8000/,效果如下:
在这里插入图片描述

2. 安装压力测试工具

本次使用ApacheBench压力测试工具,用于测试http服务器请求的性能情况(下载链接,提取码:768b )。

解压后进入Apache24中的bin文件夹内,运行下述命令:

 ./ab.exe -n100 -c50 http://127.0.0.1:8000/ 

上述命令表示模拟50个并发,每个并发发送100个访问请求。

对于django的开发者服务器来说,测试效果如下:

Requests per second:    26.42 [#/sec] (mean) Time per request:       1892.848 [ms] (mean) Time per request:       37.857 [ms] (mean, across all concurrent requests) Transfer rate:          281.54 [Kbytes/sec] received 

其中,每秒可以处理的请求数为26.42,这并不是一个很高的值,下面使用一个生产级服务器用于部署django。

3. 安装生产级服务器uvicorn

uvicorn 是基于 uvloop 和 httptools 构建的非常快速的 ASGI 服务器,下面使用它来部署django程序。

首先安装uvicorn

pip install uvicorn 

然后使用下面的命令启动django:

python -m uvicorn django_test.asgi:application 

然后再按照第2部分内容使用压力测试工具对其进行压力测试,效果如下:

Requests per second:    143.65 [#/sec] (mean) Time per request:       348.058 [ms] (mean) Time per request:       6.961 [ms] (mean, across all concurrent requests) 

可以看到,每秒可以处理的请求数为143.65,比使用开发者服务器快了将近6倍。

4. 多进程部署

前面使用uvicorn将django项目进行了生产级部署,显著提高了访问效率。但是这种部署只使用了一个进程,在最终部署时可以根据服务器核数部署多进程服务,命令如下:

python -m uvicorn django_test.asgi:application --workers 2 

这里的参数–workers表示进程数,上述命令使用2个进程进行服务。

再按照第2部分内容使用压力测试工具对其进行压力测试,效果如下:

Requests per second:    214.66 [#/sec] (mean) Time per request:       232.923 [ms] (mean) Time per request:       4.658 [ms] (mean, across all concurrent requests) 

可以看到,每秒可以处理的请求数为214.66,比单进程快了很多。

相关内容

热门资讯

三分钟辅助!丽水茶苑手机辅助,... 三分钟辅助!丽水茶苑手机辅助,竟然真的有辅助教程(详细教程)三分钟辅助!丽水茶苑手机辅助,竟然真的有...
九分钟辅助!椰岛常胜游戏脚本,... 九分钟辅助!椰岛常胜游戏脚本,总是真的是有辅助神器(有挂猫腻)1、点击下载安装,椰岛常胜游戏脚本脚本...
第四分钟辅助!小程序游戏辅助必... 第四分钟辅助!小程序游戏辅助必赢,切实是有辅助教程(确实有挂)1、第四分钟辅助!小程序游戏辅助必赢,...
第9分钟辅助!白金岛透视插件,... 第9分钟辅助!白金岛透视插件,好像有辅助教程(有挂存在)1、这是跨平台的白金岛透视插件轻量版有透视,...
六分钟辅助!家乡大二怎么挂,一... 六分钟辅助!家乡大二怎么挂,一贯真的是有辅助攻略(揭秘有挂)1、进入到家乡大二怎么挂是否有挂之后,能...
第7分钟辅助!九九山城万州版脚... 第7分钟辅助!九九山城万州版脚本,一直真的有辅助器(有挂方式)一、九九山城万州版脚本可以开透视的定义...
3分钟辅助!悠闲碰碰辅助,果然... 3分钟辅助!悠闲碰碰辅助,果然有辅助挂(确实有挂)1、完成悠闲碰碰辅助有辅助插件,帮助玩家取得所有比...
第3分钟辅助!微信微乐跑得快游... 第3分钟辅助!微信微乐跑得快游戏辅助脚本,都是是真的有辅助脚本(有挂技巧)1、不需要AI权限,帮助你...
五分钟辅助!百乐盟有没有挂,竟... 五分钟辅助!百乐盟有没有挂,竟然是有辅助工具(新版有挂)1、让任何用户在无需百乐盟有没有挂安装教程第...
第五分钟辅助!建德十三道辅助,... 第五分钟辅助!建德十三道辅助,果然是有辅助神器(真的有挂)1、建德十三道辅助辅助软件下载优化,建德十...