这周在github
上新建了一个repository
,收录使用DTrace
调试解决问题的英文文章:https://github.com/NanXiao/using-dtrace-stories。以后遇到好的英文文章,就不发在“好文推荐”板块了,直接加到repository
里,这样可以更方便大家阅读和参考。
这周在github
上新建了一个repository
,收录使用DTrace
调试解决问题的英文文章:https://github.com/NanXiao/using-dtrace-stories。以后遇到好的英文文章,就不发在“好文推荐”板块了,直接加到repository
里,这样可以更方便大家阅读和参考。
这篇短文出自于《Linux Networking, Tracing and IO Visor, a New Systems Performance Tool for a Distributed World》一文中的tracing
和dynamic tracing
两小节。我没有原文翻译,只是写出自己的理解:
作为软件工程师,可能都会遇到这样的bug
,程序运行好久才会出现问题,但是从问题现场又看不懂为什么会出现这种情况。尝试用调试器打断点,经常也是无功而返。因为断点会对程序运行的时序产生影响,很可能导致bug
无法重现。这种情况下,dynamic tracing
也许就是很好的解决办法了。
Dyna[......]
自从Brendan Gregg
和Jim Mauro于
2011年出版了《DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD》,无论是关于DTrace
或是其它tracing
技术,好像没有什么新的出版物。而关于这些知识的讨论,也只能散见于网络和邮件列表的内容。
这周我在网上看到今年新出的一本介绍DTrace
和SystemTap
的开源书:《Dynamic Tracing with DTrace & SystemTap》(github
地址在这里)。目前我只看了个前言,里面内容还没细看,不好评论书的质量。不过[……]
pgsqlstat项目是Joyent
的工程师David Pacheco开发的,它利用了Postgres
自带的DTrace probes
,是一组监控Postgres
的脚本工具。使用Postgres
的朋友可以尝试用一下这个工具,看看是否可以带来帮助。
今天分享的是pkgsrc维护者Jonathan Perkin
的《Reducing RAM usage in pkgin》。这篇文章介绍了Jonathan
如何利用DTrace
和“内存火焰图”不断改进pkgin
,把pkgin
安装软件时消耗的内存从接近400M
减到了16M
。其实各种内存问题总是困扰每个程序员的最大敌人:内存增长太快,内存泄露等等。而DTrace
和“内存火焰图”可以说是解决内存问题的“核武器”。这篇文章很好地展示了如何利用这些武器分析解决内存问题,相信看完以后会对大家debug
内存问题提供很好的思路。