Twist Twitter 的人


大多数人关心以 Web 2O 面目见人的 Twitter,我们来看看光环后面另一些有意思的东西。

Twitter 是 Ruby on Rails 的一个成功范例,也是对 server performance 需求的典型应用,他们如何让每个铜板儿的投资都产生适当的回报?DTrace 是答案之一。

Twitter 非常走运或者富有远见地把平台搭在 Solaris 上,因而他们有现成的 DTrace 可用。Twitter 的开发者曾在几个小时内靠 DTrace 发现了造成 RoR 性能严重降低的问题,他们联系了相关的开发者并很快得到了 patch 修正这个问题。在 Joyent,Twitter 和 Bryan Cantrill(他是谁?)的合作中,他们用一天时间检查 Rails 环境中 Ruby 进程,想看看是什么造成了 Twitter 中不可忍受的延迟。靠 DTrace,他们发现 Rails 中某些异常的 raise 和 catch 消耗了太多 CPU 时间,这些 CPU 时间都用来产生成百个 frame 深的 back-trace。找到然后移除这些异常后,曾经有延迟的某些 Rails request-response cycle 性能得到了极大提升。
所以这个小泡泡继续欢快地盛开。

DTrace 在 Solaris 打算 open source 的早期就先行 open 并获得了一致肯定。虽然有 systemtap 以及打算被移植到 freebsd 上的 DTrace,这个程序仍然几乎在诸如 Solaris 和 Linux 孰更优秀的口水战中必被提及。

DTrace 授权是更宽松的 CDDL 1.0,这造成了移植其到 GPL Linux 的麻烦,所以才有 Systemtap 的诞生,所以才有 Freebsd 可以安全地移植 DTrace 进来。

DTrace 作者(当然我们承认这是 teamwork)Bryan Cantrill 的 blog 有更多信息。

软件的力量

[tags]dtrace, twitter, sun, software[/tags]