Performance counters for Linux are a new kernel-based subsystem that provide a framework for all things performance analysis. It covers hardware level (CPU/PMU, Performance Monitoring Unit) features and software features (software counters, tracepoints) as well. Since 2.6.33, the kernel provide 'perf_event_create_kernel_counter' kernel api for developers to create kernel counter to collect system runtime information. What I concern most is the performance impact on overall system when tracepoint/ftrace is enabled. There are no docs I can find about them. I was once told that ftrace was implemented by dynamically patching code, will it slow the system dramatically?
A:
Those things are put in because people think they might be useful, and no doubt they can collect interesting information. If that is the goal, fine.
However, if the goal is to tune software for higher performance, they are of little diagnostic value.
They can provide interesting measurements, but they don't tell you what to fix.
Mike Dunlavey
2010-05-08 16:41:33
Well, my goal is running long-term profiling on production machines, so the performance overhead concerns me most.
Bo Xiao
2010-05-08 18:59:30
@Bo: I would think, for long-term monitoring of health, you might not need information collected at high frequency - that it would be more a matter of overall timing. If you have something that is collecting information at such high frequency that it could impact performance, I would think it would be way more information than you could possibly make sense of. Usually people do "instrumentation" (and are worried about overhead) in order to try to find "bottlenecks" (for which it is not a good method).
Mike Dunlavey
2010-05-08 21:05:09