1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

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

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.