Код сервера
Код: Выделить всё
@app.get("/sync/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
time.sleep(1)
return {"item_id": item_id, "q": q}
@app.get("/async/{item_id}")
async def aread_item(item_id: int, q: Union[str, None] = None):
await asyncio.sleep(1)
return {"item_id": item_id, "q": q}
Запуск с помощью fastapi, запустите тест/main.py
Конечная точка
Команда
Запросов в секунду (среднее)
< tr>
Асинхронный
Код: Выделить всё
ab -c 10000 -n 10000 "http://localhost:8000/async/31"Синхронизация
Код: Выделить всё
ab -c 10000 -n 10000 "http://localhost:8000/sync/31"< /div>
Бег с поэзией run Gunicorn тестовый.main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker
Конечная точка
Команда
Запросов в секунду (среднее)
Асинхронный
Код: Выделить всё
ab -c 10000 -n 10000 "http://localhost:8000/async/31"Синхронизация
Код: Выделить всё
ab -c 10000 -n 10000 "http://localhost:8000/sync/31"< /div>
Бег с поэзией run Gunicorn тестовый.main:app --workers 12 --worker-class uvicorn.workers.UvicornWorker
Конечная точка
Команда
Запросов в секунду (среднее)
Асинхронный
Код: Выделить всё
ab -c 10000 -n 10000 "http://localhost:8000/async/31"Синхронизация
Код: Выделить всё
ab -c 10000 -n 10000 "http://localhost:8000/sync/31"< /div>
Работа с uvicorn тестовым.main:app --workers 12 --host 0.0.0.0 --port 8000
Конечная точка
Команда
Запросов в секунду (среднее)
Асинхронный
Код: Выделить всё
ab -c 10000 -n 100000 "http://localhost:8000/async/31"< /дел>
Подробнее здесь: https://stackoverflow.com/questions/788 ... of-fastapi