网站首页 > 技术教程 正文
我使用的框架是python的fastAPI,一个简单的hello world,加一个sleep(2)模拟耗时操作。代码如下:
import time
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
time.sleep(2) # 模拟耗时操作
return {"Hello": "World"}
先单进程启动
启动命令:
uvicorn --host 0.0.0.0 --port 5000 --workers 1 yourfilename:app
使用的测试工具是ab(Apache Benchmark)。测试的时候为了避免干扰,最好将ab和服务放在不同的机器上。
-c 和 -n 参数可以从小到大慢慢增加
当并发数为 50 请求数为1000 时:
> ab -c 50 -n 1000 your_url
Requests per second: 5.87 [#/sec] (mean)
Time per request: 8518.141 [ms] (mean)
当并发数为 100 请求数为1000 时:
> ab -c 100 -n 1000 your_url
Requests per second: 5.87 [#/sec] (mean)
Time per request: 17034.188 [ms] (mean)
可以看到,平均每秒处理的请求数不变,单个请求的响应时间变长了
使用多进程启动:
uvicorn --host 0.0.0.0 --port 5000 --workers 4 yourfilename:app
当并发数为 100 请求数为1000 时:
> ab -c 100 -n 1000 your_url
Requests per second: 21.66 [#/sec] (mean)
Time per request: 4617.610 [ms] (mean)
可以看到,使用多进程,平均每秒处理的请求数变多了,单个请求的响应时间也变短了
nginx负载均衡
当并发量超过一定数量,一台机器也难以承受,这时候可以部署多台服务器,然后用nginx做负载均衡。
nginx的关键配置:
http {
……
upstream load_balance_test {
# 你的多台服务器 结合业务情况,设置转发规则
server 1.1.1.1:5000;
server 192.168.1.1:5000;
}
server {
listen 80;
……
location / {
proxy_pass http://load_balance_test;
}
}
……
}
这次同样是 并发数 100 请求数1000,请求地址是nginx所监听的地址:
> ab -c 100 -n 1000 nginx地址:端口
Requests per second: 33.19 [#/sec] (mean)
Time per request: 3012.560 [ms] (mean)
猜你喜欢
- 2024-10-13 Nginx 多进程高并发、低时延、高可靠机制在滴滴缓存代理中的应用
- 2024-10-13 linux的TCP连接数量不能超过65535个,如何应对千万的并发的?
- 2024-10-13 Nginx实现高速并发处理的原理详解
- 2024-10-13 Java开发大型互联网企业高并发限流特技
- 2024-10-13 高并发下的Nginx限流实战(nginx并发能力是多少)
- 2024-10-13 nginx——控制 Nginx 并发连接数(nginx 并发限流)
- 2024-10-13 Nginx(七) 测试使CPU占用更多能否提升并发数
- 2024-10-13 Nginx凭啥子并发数可以达到3w!(nginx的并发量)
- 2024-09-28 服务器能承载3000人但来5000人!服务器宕机了!如何救
- 2024-09-28 让腾讯失眠大数据专家,一文带你读懂Linux与高并发,总计4.56G
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)