转载

Dynamic tracing的重要用途

这篇短文出自于 《Linux Networking, Tracing and IO Visor, a New Systems Performance Tool for a Distributed World》 一文中的 tracingdynamic tracing 两小节。我没有原文翻译,只是写出自己的理解:

作为软件工程师,可能都会遇到这样的 bug ,程序运行好久才会出现问题,但是从问题现场又看不懂为什么会出现这种情况。尝试用调试器打断点,经常也是无功而返。因为断点会对程序运行的时序产生影响,很可能导致 bug 无法重现。这种情况下, dynamic tracing 也许就是很好的解决办法了。

Dynamic tracing 的一个重要特点就是可以动态地插入和移除 probe ,这样可以准确地控制 tracing 对系统造成的额外的 overhead 。在你怀疑的地方插入 probe ,通过观察 probe 触发时输出的信息,很可能会让你眼前一亮。 因此掌握 dynamic tracing 技术会给工作中带来很大帮助。 Solaris/FreeBSD/Illumos/Mac OS XDTraceLinux 上有 perf_events/kprobes/uprobes 等等,希望大家都可以尝试一下这些 dynamic tracing 工具, enjoy dynamic tracing

正文到此结束
Loading...