You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In #9778, we added heap profiles based on Jemalloc and rust-jemalloc-pprof. However, these profiles are not symbolized -- this requires users to download the binary and symbolize the profiles themselves to do anything useful with it. It's also likely that Grafana Cloud Profiles requires symbolized profiles.
We should symbolize the pprof profile on the server-side before sending it to the client. This can be done using e.g. the Rust addr2line crate, and then (re-)serialize the pprof Protobuf profile. We should consider upstreaming this to rust-jemalloc-pprof, if they want it, which might avoid an extra de/serialization roundtrip.
The text was updated successfully, but these errors were encountered:
## Problem
Jemalloc heap profiles aren't symbolized. This is inconvenient, and
doesn't work with Grafana Cloud Profiles.
Resolves#9964.
## Summary of changes
Symbolize the heap profiles in-process, and strip unnecessary cruft.
This uses about 100 MB additional memory to cache the DWARF information,
but I believe this is already the case with CPU profiles, which use the
same library for symbolization. With cached DWARF information, the
symbolization CPU overhead is negligible.
Example profiles:
*
[pageserver.pb.gz](https://github.com/user-attachments/files/18141395/pageserver.pb.gz)
*
[safekeeper.pb.gz](https://github.com/user-attachments/files/18141396/safekeeper.pb.gz)
In #9778, we added heap profiles based on Jemalloc and rust-jemalloc-pprof. However, these profiles are not symbolized -- this requires users to download the binary and symbolize the profiles themselves to do anything useful with it. It's also likely that Grafana Cloud Profiles requires symbolized profiles.
We should symbolize the pprof profile on the server-side before sending it to the client. This can be done using e.g. the Rust addr2line crate, and then (re-)serialize the pprof Protobuf profile. We should consider upstreaming this to rust-jemalloc-pprof, if they want it, which might avoid an extra de/serialization roundtrip.
The text was updated successfully, but these errors were encountered: