-
Notifications
You must be signed in to change notification settings - Fork 1.6k
RPC performance decimated #906
Comments
@tomusdrw did we had any big changes to the rpc crate lately? |
I presume it's HTTP server, right? Just checked and we bumped It should still though utilise all 4 threads of the runtime spawned by @emielvanderhoek would you mind checking:
Also what metric do you use to measure performance? Is it average response time? Or do you mean resource utilisation (as in 0.7.20 taking 8x less resources)? |
Yes we are using RPC over HTTP (not WS). I currently have a very coarse grained performance metric (I am aware of that). I'll follow-up to better define that soon. |
@emielvanderhoek Thanks a lot for running the branch, it suggests that the issue is not fully caused by @arkpar is it possible that some DB/cache options were changed and could be causing that. Seems that |
I will check the difference between v0.7.20 and v0.7.25. I know the machine I am running on has eight cores/threads available. |
We need a benchmark for this.
These don't invoke runtime so it can't be wasm execution.
|
Ok new info... I will see what I can do to get real numbers (benchmark).
Like I said we currently have a coarse grained benchmark. |
@emielvanderhoek Could you provide instructions to run the harvester? |
@arkpar I would need to check. We are currently wrapping up some grant work and hence most of that is pending a big refactor. |
I included a simple script what basically loops through a 1000 blocks the same way the harvester would (90% of our RPC calls are extrinsics and events), I noticed that just after a clean sync the performance of both versions are somewhat the same, I suspect the performance drops when the database grows bigger but couldn't confirm yet. On a Python 3.6+ env run:
|
Unfortunately I cannot get the v0.7.20 version to sync anymore. So it is hard to get an objective baseline for performance with this script... |
5330d84e CLI: naming clean-up. (paritytech#897) f99f2225 Westend<>Rococo Headers Relay (paritytech#875) 72c9117b Use complex headers+messages relay in test deployments (paritytech#905) 48423d5b Stop recursing when creating test headers (paritytech#906) f8586fd4 Fix outstanding bridge names. (paritytech#901) 54b683b3 Complex headers+messages Millau<->Rialto relay (paritytech#878) c0e77ca1 fix message generator scripts (paritytech#900) debf3a82 Use Substrate state_getReadProof RPC method to get storage proofs (paritytech#893) c3fa7216 Support more than `u8::max_value` GRANDPA validators (paritytech#896) e5cb87f9 Grandpa Pallet Pruning (paritytech#890) 0b6a8920 RestartNeeded is a connection error (paritytech#894) 2cf5fa26 CLI: Estimate Fee (paritytech#888) 7dace624 CLI: Send Message (paritytech#886) f8eaecfa CLI: Encode Message (paritytech#889) 1610f868 Bump `jsonrpsee` to Alpha.3 (paritytech#892) d665b531 Use new Cargo feature resolver (paritytech#891) ce2ee6ed Rialto Millau Maintenance Dashboard (paritytech#881) 7c585ce8 Revert to older nightly. (paritytech#887) 73a0470e Adding GrandpaJustification custom type (paritytech#882) b9ccea9c Install CA certificates in relay images (paritytech#880) ec7841a2 fix widget names (paritytech#879) REVERT: 746a4027 Accidentally committed `cargo-expand`ed code 🤦 REVERT: 1a5d09c5 Add note to more closely match `initialize` Call variant REVERT: fdd6e6b3 Add `submit_finality_proof` mock Call variant REVERT: 768b053e Simplify the Rococo and Westend signing params REVERT: 62aca80e Add Westend<>Rococo variants to `relay_headers` REVERT: 0bcb0f51 Add Westend<>Rococo variants to `init_bridge` REVERT: 01d1305f Use mock Westend and Rococo finaltiy tx calls REVERT: fb34b9dd Add modules for Rococo<>Westend header sync git-subtree-dir: bridges git-subtree-split: 5330d84e9511e38cf9d9ec765bee865fedd4b260
For our Polkascan use-case we extensively query the Substrate RPC endpoints.
We notice a very significant difference in performance between v0.7.20 and v0.7.25.
Kusama v0.7.20 is approximately 8 times faster than v0.7.25.
We have run v0.7.25 with various OPTIONS:
This does not make a significant difference.
In general our harvester requests the following RPCs for each and every block:
We would like to get back to the performance we had when we were using v0.7.20.
Please advise.
The text was updated successfully, but these errors were encountered: