Perf: testing with "ab" benchmark and optimzation #223
Replies: 10 comments
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been minimized.
This comment has been minimized.
-
2 VM, each 1 core x 512MB: 177 rps
|
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
This comment has been minimized.
This comment has been minimized.
-
Increase concurrent request to 200 => 316 rps
Increase concurrent request to 250 => 373 rps
Increase concurrent request to 500 => 446 rps
|
Beta Was this translation helpful? Give feedback.
-
optimize Deno in multiple core VMshttps://www.perplexity.ai/search/3a72338e-318f-46e5-9b7c-4e10d8240a4d Deno 2.0 introduced the |
Beta Was this translation helpful? Give feedback.
-
fly.io deployment in SJC, and with Cloudflare proxy
Local Macbook Air (M4) running docker containers for app and postgres db
|
Beta Was this translation helpful? Give feedback.
-
For Postgres-related latency, see #208 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary of Performance Test Results
Test Setup
Performance Summary
In our tests, the application sustained about 500–600 requests per second on Fly.io. Beyond this point, adding more CPU cores or memory didn’t increase throughput — it mainly improved stability under heavy load. The main performance constraints were network latency between our test location and the servers, along with limits in the cloud platforms.
After enabling multi‑core support in Deno, we observed a ~2x performance boost on local machines with very low latency - 2 core over 1 core is only 30% faster. However, in cloud environments this change had little impact because performance remained network‑bound rather than CPU‑bound.
On IBM cloud with 8 core (6 core for Deno) and increase pg connection limit to 1000, we are getting 2639 rps.
In ideal conditions — such as running locally on a Mac — the application can process well over 3,000 requests per second, demonstrating that the codebase is highly efficient and that server location and network speed are the key factors affecting real‑world results.
Requests Per Second (RPS) Comparison by Environment
Requests per Second (rps) Breakdown
Additional Notes
Make the following change to docker-compose.yaml to increase pg connection limit.
Per request process time and optimization
Discussed in #41
Beta Was this translation helpful? Give feedback.
All reactions