I used async-profiler to profile flink application. Flink is a distributed application. It runs with one master and multiple workers. In order to profile, I go to one worker, run async-profiler, get the flamegraph and analyze that. However, since this is a distributed application, I need to repeat this steps on multiple workers to confirm my observation.
Is there a way to aggregate all perf events data collect from multiple workers and get a single flamegraph? thanks!
You can do it like this:
Right, concatenating output files in collapsed format is probably the easiest way to get an aggregated profile.
I am not familiar with JFR file format, is there a way to merge multiple JFR captures?
I wrote a tool, that parses multiple wall-clock JFR output from async-profiler, and merges them into 2 collapsed stack files (one contains CPU profile, other with wall-clock profile). It is not what you exactly wants, but maybe it will solve your problem.
I think from this it looks like it is just plain contamination of the files for JFR.
Most helpful comment
You can do it like this: