3

How do I find out how fast is a certain process accessing the DRAM?

There are lots of ways to monitor the CPU usage, memory footprint etc etc, but is there a utility I can use to monitor the memory bandwidth used by a certain piece of program? No, I do not have access to the program's source code, it is a binary blob. And no, nothings goes into swap space.

Essentially I want to profile a program's RAM throughput across a number of different hardware architectures. I am aware that, all of the caching mechanisms may complicate things, but once cached on the CPU (both instruction and data) I am not bothered. What I want to know is the data transfer rate between the CPU and the RAM used by a particular process.

Any suggestions what might be a good way to go about this would be much appreciated! Thanks!

1 Answer 1

0

The perf tool comes to mind – try perf mem record <command> followed by perf mem report.

3
  • The mem option only exists in the benchmark function, i.e. "# perf bench mem" benchmark the system performance, not application profile. The nearest I've come to is: # perf stat -p PID -a -e HW_COUNTERS Hardware counters like cache-misses, LLC-load-misses, LLC-store-misses, LLC-prefetch-misses etc are at best indicative, but far from definitive statistic. Commented Oct 17, 2014 at 15:03
  • @user2539817: Perhaps you have an older version then? perf mem certainly exists in perf 3.17.0... Commented Oct 17, 2014 at 15:36
  • Their documentation is sketchy to say the least, but I am stuck with 2.6.32-431.29.2.el6.x86_64.debug anyway. Commented Oct 18, 2014 at 11:00

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .