2
1
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!
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. – user2539817 – 2014-10-17T15:03:11.913
@user2539817: Perhaps you have an older version then?
perf mem
certainly exists in perf 3.17.0... – user1686 – 2014-10-17T15:36:48.523Their documentation is sketchy to say the least, but I am stuck with 2.6.32-431.29.2.el6.x86_64.debug anyway. – user2539817 – 2014-10-18T11:00:44.957