FastAPI + Vuejsで230 msで1000リクエストを出す
私はboilerplate project FastAPIとVueと私は好奇心旺盛な初期の静的ファイル(単一のページアプリケーションのために必要な)を提供するハンドルを扱うことができます.
我々がサーブしているベル
フラッグ
1000リクエストで包囲を始めましょう
10 Kリクエストを試してみましょう.
もちろん、実際の生活ではこれは起こりません.ネットワークの速度、サーバー上の追加処理などが干渉する要因がたくさんあります.また、私はこの設定からNGinxを省略します.これは生産において必須のもので、そうでなければDOS攻撃を危険にさらします.
ロードテストは、インテルi 5、8 GBのRAM、SSDとラップトップで実行されました.
我々がサーブしているベル
dist
フォルダを実行した後npm run build
寸法~600kb
). FastapiのためのDockerイメージは、Sebasti - N N RAM Three Rzからとられました.from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
app = FastAPI()
# Mounting default Vue files after running npm run build
app.mount("/dist", StaticFiles(directory="dist/"), name="dist")
app.mount("/css", StaticFiles(directory="dist/css"), name="css")
app.mount("/img", StaticFiles(directory="dist/img"), name="img")
app.mount("/js", StaticFiles(directory="dist/js"), name="js")
templates = Jinja2Templates(directory="dist")
@app.get("/", response_class=HTMLResponse)
async def root(request: Request):
return templates.TemplateResponse("index.html", {"request": request})
以下に使用したgunicornコマンドを示します.gunicorn main:app --workers=8 -b "0.0.0.0:3000" --worker-class=uvicorn.workers.UvicornWorker --log-level info
負荷テストをしましたbaton 負荷試験のためのGolang CLIツールフラッグ
-c
同時リクエスト数とフラグの数を表す-r
はリクエストの数です.1000リクエストで包囲を始めましょう
>> baton -u http://localhost:3000 -c 10 -r 1000
====================== Results ======================
Total requests: 1000
Time taken to complete requests: 236.375341ms
Requests per second: 4231
===================== Breakdown =====================
Number of connection errors: 0
Number of 1xx responses: 0
Number of 2xx responses: 1000
Number of 3xx responses: 0
Number of 4xx responses: 0
Number of 5xx responses: 0
=====================================================
ルックスかなり良い:1000の要求は約230 msで終了しました.10 Kリクエストを試してみましょう.
baton -u http://localhost:3000 -c 10 -r 10000
====================== Results ======================
Total requests: 10000
Time taken to complete requests: 2.526745739s
Requests per second: 3958
===================== Breakdown =====================
Number of connection errors: 0
Number of 1xx responses: 0
Number of 2xx responses: 10000
Number of 3xx responses: 0
Number of 4xx responses: 0
Number of 5xx responses: 0
=====================================================
10.000の要求は約2.6 sで終了!もちろん、実際の生活ではこれは起こりません.ネットワークの速度、サーバー上の追加処理などが干渉する要因がたくさんあります.また、私はこの設定からNGinxを省略します.これは生産において必須のもので、そうでなければDOS攻撃を危険にさらします.
ロードテストは、インテルi 5、8 GBのRAM、SSDとラップトップで実行されました.
Reference
この問題について(FastAPI + Vuejsで230 msで1000リクエストを出す), 我々は、より多くの情報をここで見つけました https://dev.to/climentea/serving-1000-vuejs-static-files-in-230ms-with-fastapi-4jndテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol