Closed steve-chavez closed 1 year ago
@wolfgangwalther I recall you ran the postgrest-loadtest on a commit range before. Perhaps you could share the script so I can check? (the script would be useful as one of our nix commands too).
Unfortunately, I don't have that script anymore.
I've tried to reproduce the issue with postgrest-loadtest-against
0a1564ba5aaa8175dcb738271967944652cf4ce9
locally
According to the report, requests throughput does drop, along with request rate, but not 25% down:
Rate | Throughput | |
---|---|---|
0a1564 | 710.57 | 645.97 |
main | 687.80 | 625.27 |
diff | -4% | -4% |
While there is a slowdown, it's not awful lot. Might be a fluke; worst case is the slowdown is amplified by the environment Github actions are running in. I'd suggest we'd try running loadtest in a dedicated VM (in AWS for now) and see if we could reproduce the issue.
On the other hand, the loadtest against the commit before the v11.2.0 reports throughput = 261.92, while the one before the v11.1.0 does 323.83 which results in 20% drop.
Ran postgrest-loadtest-against v11.1.0
locally, no luck — less that 5% drop
Reviewed loadtest results for handful of commits between v11.1.0 and v11.2.0. Most of the tests have their throughput in 320-350, and while there are some drops to 260s, they do not hold — loadtest against next commit has throughput back in 300s.
To me it looks like an irregular fluke so far.
While there is a slowdown, it's not awful lot. Might be a fluke; worst case is the slowdown is amplified by the environment Github actions are running in.
@develop7 Those are great news! Thanks for reporting!
I'd suggest we'd try running loadtest in a dedicated VM (in AWS for now) and see if we could reproduce the issue.
That would be great. Having a dedicated AWS instance where postgrest-loadtest
runs on every CI run would give the most stable results. Seems doable considering we already use AWS for our ARM builds.
Having a dedicated AWS instance where postgrest-loadtest runs on every CI run
@laurenceisla Just told me that the above is not possible, the github secrets required for the AWS instance to run are not exposed to PRs, only for the main
branch. This is why our ARM build only runs on main
.
I'll summarize here (for posterity's sake) our private chat with @steve-chavez from yesterday.
main
branch and, while there are significant drops here and there, they are not preserved further in history. Therefore I think these drops are caused by uneven resources budgeting for action runners on GitHub. We could avoid that by moving runners to the environment with more control on resources (dedicated server, spot instances on AWS, etc).postgrest-loadtest-against
script) and these numbers look in line within a run, doing their job after all.main
branch runs twice against the same commit. I've suggested we'd make it run against latest release instead, which would require some tweaking, which @steve-chavez approved.Bottom line is: while there's probably no performance drop against latest release, I'll fix our loadtest CI to make sure there isn't for sure.
Closing this as it was already clarified there was no noticeable perf loss.
Problem
On https://github.com/PostgREST/postgrest/pull/2523, the loadtest reported
420.02257774518125
throughput.On main, the loadtest reports a
338.6473662241433
throughput.Proposal
We need to check on which commit(s) the regression happened and then find a solution.
@wolfgangwalther I recall you ran the
postgrest-loadtest
on a commit range before. Perhaps you could share the script so I can check? (the script would be useful as one of our nix commands too).