Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tide framework is slow #6157

Open
tolbrino opened this issue Apr 8, 2024 · 3 comments
Open

Tide framework is slow #6157

tolbrino opened this issue Apr 8, 2024 · 3 comments

Comments

@tolbrino
Copy link
Contributor

tolbrino commented Apr 8, 2024

For reference, see:
https://github.com/programatik29/rust-web-benchmarks/blob/master/result/hello-world.md#comparisons

@ausias-armesto
Copy link
Contributor

As part of the load testing executions, I've identified that the Tide framework is limiting hoprd to properly scale to receive more requests. Here is a fragment of the logs taken while running the load testing and provoking to relay messages.

2024-05-24T15:55:48.887835Z  INFO ThreadId(06) hoprd: ## NODE RECEIVED MESSAGE [@2024-05-24T15:55:48.887832946+00:00] ## app_tag=273 latency_in_ms=286
2024-05-24T15:55:48.935402Z  INFO ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="9c1904ee-1d9f-4e49-acbc-c6df1a355c1c"}: tide_tracing: received
2024-05-24T15:55:48.935441Z  WARN ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="9c1904ee-1d9f-4e49-acbc-c6df1a355c1c"}:Response{http.status_code=404 http.duration=23.491µs}:Client error: tide_tracing: sent
2024-05-24T15:55:48.947587Z  INFO ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="1f9334af-d9de-4d94-a7e1-885f20a4d15e"}: tide_tracing: received
2024-05-24T15:55:48.947634Z  INFO ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="1f9334af-d9de-4d94-a7e1-885f20a4d15e"}:Response{http.status_code=200 http.duration=31.11µs}: tide_tracing: sent
2024-05-24T15:55:48.953248Z  INFO ThreadId(06) Request{http.method=POST http.target=/api/v3/messages request_id="8a1e5265-77df-411c-956b-1648c7a7e435"}: tide_tracing: received
2024-05-24T15:55:48.954951Z  INFO ThreadId(06) Request{http.method=POST http.target=/api/v3/messages request_id="8a1e5265-77df-411c-956b-1648c7a7e435"}:Response{http.status_code=202 http.duration=1.68275ms}: tide_tracing: sent
2024-05-24T15:55:48.958789Z  INFO ThreadId(06) hoprd: ## NODE RECEIVED MESSAGE [@2024-05-24T15:55:48.958785704+00:00] ## app_tag=333 latency_in_ms=365
2024-05-24T15:55:48.975302Z  INFO ThreadId(06) Request{http.method=POST http.target=/api/v3/messages/pop request_id="80479a51-69b2-4d4d-b2da-cb23cf65083b"}: tide_tracing: received
2024-05-24T15:55:48.975333Z  WARN ThreadId(06) Request{http.method=POST http.target=/api/v3/messages/pop request_id="80479a51-69b2-4d4d-b2da-cb23cf65083b"}:Response{http.status_code=404 http.duration=18.729µs}:Client error: tide_tracing: sent
2024-05-24T15:55:48.975654Z  INFO ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="1615fd6b-2f32-4a18-8b55-50920f3e9430"}: tide_tracing: received
2024-05-24T15:55:48.975686Z  WARN ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="1615fd6b-2f32-4a18-8b55-50920f3e9430"}:Response{http.status_code=404 http.duration=18.791µs}:Client error: tide_tracing: sent
2024-05-24T15:55:48.975754Z  INFO ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="3bc22e47-477d-4827-999f-603e8a824a64"}: tide_tracing: received
2024-05-24T15:55:48.975790Z  WARN ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="3bc22e47-477d-4827-999f-603e8a824a64"}:Response{http.status_code=404 http.duration=21.46µs}:Client error: tide_tracing: sent
2024-05-24T15:55:48.975876Z  INFO ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="49e5f054-c296-470d-a110-27667e454499"}: tide_tracing: received
2024-05-24T15:55:48.975898Z  WARN ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="49e5f054-c296-470d-a110-27667e454499"}:Response{http.status_code=404 http.duration=12.591µs}:Client error: tide_tracing: sent
2024-05-24T15:55:48.976338Z  INFO ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="1fa04544-8376-4bd9-a18a-d5087269df2b"}: tide_tracing: received
2024-05-24T15:55:48.976368Z  WARN ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="1fa04544-8376-4bd9-a18a-d5087269df2b"}:Response{http.status_code=404 http.duration=17.831µs}:Client error: tide_tracing: sent
2024-05-24T15:55:48.976945Z  INFO ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="079a4064-afb6-49cd-85f4-faf6a1b165f3"}: tide_tracing: received
2024-05-24T15:55:48.976979Z  WARN ThreadId(05) Request{http.method=POST http.target=/api/v3/messages/pop request_id="079a4064-afb6-49cd-85f4-faf6a1b165f3"}:Response{http.status_code=404 http.duration=18.98µs}:Client error: tide_tracing: sent

I would propose to include this as part of the release 2.2, as it's important that we start identifying bottlenecks and this is one of them.

@NumberFour8
Copy link
Contributor

Requires #6291

@Teebor-Choka
Copy link
Contributor

Complete benchmarks over a hello world app are here: https://github.com/programatik29/rust-web-benchmarks/blob/master/result/hello-world.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants