Fast Track to Solaris 10 Adoption: Dynamic Tracing
Performance Issues
Please click on a question below or download a pdf version.
- Doesn't DTrace work only on the kernel?
- Does DTrace introduce any performance hits?
- How much CPU/memory does DTrace take up while debugging kernel/system calls?
- Could DTrace be compared to the very popular SE Toolkit that is used to gather performance data? From what I have read, it seems to be much more powerful, but I was interested in a replacement for the SE Toolkit.
- I have noticed that when the DNLC cache is getting full, the system time is increasing. Can DTrace verify that the CPU time is spent on traversing and processing the DNLC cache? In general, can DTrace see how much time is spent on processing kernel data structure?
Q: Doesn't DTrace work only on the kernel?
A: No, DTrace works on the kernel and on applications.
Back to top
Q: Does DTrace introduce any performance hits?
A: When DTrace is disabled, there is no performance effect at all. The DTrace framework allows you to enable any of 30,000 or more probes. If you just enable a few, the hit will be relatively small; if you enable them all, it will create a noticeable impact, but the machine will still be fine.
Back to top
Q: How much CPU/memory does DTrace take up while debugging kernel/system calls?
A: With DTrace, you pay for what you ask. If you enable a few probes, the performance hit is negligible; if you enable more, you might start to notice it. In terms of memory, the size of DTrace's internal buffers is completely configurable (see the Buffers and Buffering and Options chapters in the Solaris Dynamic Tracing Guide). In general, the memory footprint isn't a factor on anything but the smallest systems (like 128M).
Back to top
Q: Could DTrace be compared to the very popular SE Toolkit that is used to gather performance data? From what I have read, it seems to be much more powerful, but I was interested in a replacement for the SE Toolkit.
A: It's not a replacement really it's more of a complementary technology. Let's say that you see something aberrant with the SE Toolkit. DTrace allows you to dive down on that aberration to root-cause it. If you look at the DTrace forum, this question has also been asked over there. My answer there might be slightly less rushed.
Back to top
Q: I have noticed that when the DNLC cache is getting full, the system time is increasing. Can DTrace verify that the CPU time is spent on traversing and processing the DNLC cache? In general, can DTrace see how much time is spent on processing kernel data structure?
A: Absolutely. Although the system time may well be increasing simply because your miss rate is rising in the DNLC. Check the "dnlcstats" kstat. DTrace can absolutely be used to investigate this. For starters, look at using the "profile" provider see the profile chapter of the AnswerBook resource guide.
|