python - 如何提高 API 服务器性能?
问题描述
我正在使用 Locust 测试我的服务器性能。
API 和服务器按照本教程进行配置: https ://medium.com/swlh/python-with-docker-compose-fastapi-part-2-88e164d6ef86
这是我的蝗虫负载测试代码:
from locust import HttpUser, TaskSet, task, between
class FastApi(TaskSet):
@task(1)
def user_by_name(self):
self.client.get(
url="/user/?first_name=Name"
)
class ApiLoadTest(HttpUser):
tasks = [FastApi]
host = "http://vps1234.vps.ovh.net:8000"
stop_timeout = 20
wait_time = between(1, 3)
我设置蝗虫如下:
- 模拟用户总数:1000
- 生成率:100
目前 Locust 显示以下统计数据:
- 当前 RPS:226
- 平均(毫秒):2704
- 最大(毫秒):5200
服务器(OVH):
- 1 个 vCore
- 2 GB 内存
- 20 GB 固态硬盘
- 100 Mbps
我的问题是低性能是不是真的很好的 VPS 造成的,还是我在负载测试代码中犯了一些错误?我想知道提高服务器性能以实现大约 100 毫秒平均响应的唯一解决方案是否是升级 VPS 以拥有更多 CPU/RAM/Mbps?
亲切的问候
解决方案
您需要查找您的 VPS 的性能统计数据来回答这个问题。
需要查看的基本内容是负载测试期间的 CPU、RAM 和磁盘使用情况。
另一个限制可能是客户端机器本身。但是对于 1000 个用户及以上的脚本应该没问题
推荐阅读
- python - 网络抓取时如何排除元组?
- git - 即使内容是最新的,也强制推送 Git 存储库
- python - 将预处理步骤捆绑到 Tensorflow SavedModel
- pandas - 将 PANDAs 数据框折叠成包含所有项目及其出现的单列
- swift - 如何从我的故事板中删除一个出口?
- c++ - 为什么 2 个未初始化的 std::set::iterator 相等?
- angular - 在 Chrome / MacOS 下使用 Monaco 编辑器 (Angular) 在文本和光标之间进行偏移
- c# - RestClient ExecuteTaskAsync 和 Execute 方法:与“where T : new()”混淆
- scala - Scala 中的 OSGi 注释(激活、引用、组件)
- c# - JsonConvert.DeserializeObject 对象之一可能有两种类型