-
Notifications
You must be signed in to change notification settings - Fork 803
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
Fine grained CPU profiling #804
Comments
Just to clarity, the profiler frequency used in pyroscope is configurable. The problem is that it accumulates the profiling info into segments of 10s, which is hardcoded in their server in many places. Cf grafana/pyroscope#901. Also worth mentioning that we don't need to run it on every node. One validator and one collator per parachain would be fine. We could try another tool in the same category of continuous profilers or try to fork their server. |
After my latest experiences re-enabling pyroscope and pprof-rs, I can confirm that we need a different solution because:
Ideally, we'd want to use And there is also the storage problem. Profiling spits out a ton of data. If the frequency is too small, the data is not representative. If the frequency is too high, it can overwhelm the server and become unmanageable. |
* Add evm-chain-id pallet Signed-off-by: koushiro <[email protected]> * Add some doc Signed-off-by: koushiro <[email protected]>
* Remove unused Config types from `pallet-finality-verifier` * Remove unused AncestryChecker trait * Remove ancestry proof parameter from relayer calls * Update docs to reflect current state of pallet * Remove mock ancestry checker * Remove unused error * Write headers outside of function used for authority set changes * Move justification verification into helper function * Add documentation suggestions Co-authored-by: Tomasz Drwięga <[email protected]> * Clean up module level documentation a bit Co-authored-by: Tomasz Drwięga <[email protected]>
Superseeded by using subsystem benchmarks with pyroscope. |
There have been efforts to solve this earlier like paritytech/polkadot#4871 but the results we got were not providing enough insights due to the low sampling rate/storage - https://pyroscope.io/docs/storage-design/ . We should continue the effort to implement something that works better for our usecase. We need as fine grained as possible CPU profiling (100us) with visualisation tooling to increase accuracy and decrease the scope of debugging when dealing with node performance issues or optimization work.
The solution should also consider this must also work easily with Zombienet to test performance regression in the CI pipeline.
The text was updated successfully, but these errors were encountered: