系统性能是一个充满挑战的领域,系统是主观的,复杂的,但是通常都是很多问题并存的。
性能通常是有主观性的,例如磁盘的平均I/O响应视角是1ms?这样应该说好还是坏呢,响应时间或者说是延迟,虽然作为最好的衡量指标之一,但还是难以用来说明延时的情况。从某种程度上说,一个指标的好或者坏取决于应用开发人员和最终用户的性能预期。
延迟的测量是用于等待的时间,作为一个指标可以估计最大增速。虽然延时作为一个非常有用的指标,但也不是随时随地都能获得。某些系统只有平均延时,某些系统完全没有延时指标。动态延时可以从任意感兴趣的点去测量延时,还可以提供数据以显示延时完整的分布情况。
动态跟踪技术是把所有的软件变得可以监控,而且能够用在真实的生产环境。通俗地讲动态跟踪和传统的观测方法相比是不同的,以操作系统内核举例的话,分析内核好比闯进一间黑屋子,拿着蜡烛(系统自带的统计)去照亮内核工程师觉得需要被照亮的地方。而动态跟踪则像是手电筒,你可以指哪里照哪里。
DTrace是第一个适用于生产环境的动态跟踪工具,它提供了许多功能,甚至有一套自己的编程语言,D语言。在DTrace之前,系统跟踪适用的是静态探针:置于内核和其他软件之上的一小套监测点。这种方法的观测很有效,一般用起来很费时,需要配置,跟踪,导出数据以及最后分析的一套流程。