在对复杂问题进行故障排除时,有一个原因可以采用附加的与减去的故障排除方法

TLDR:我有兴趣查明是否有理由select一种添加方法来对减法进行故障排除,反之亦然,当尝试排除许多variables的故障时。

问题概述:

我正在和一群试图排除暂时性系统中间歇性但影响严重的问题的人一起工作,这个问题阻止了我们开始使用这种新configuration。

我们有一个Citrix XenApp应用服务器运行在一个虚拟化的基础设施上,为通过广域网在远程站点运行的客户端提供应用服务。 在广域网和托pipe虚拟化服务器的物理服务器之间的networking首端有几个encryption/安全/防火墙设备。

所以基本上我们有一个很多variables的问题,我们正试图解决它。 到目前为止,我们已经开始采用一种减法的方法 – 试图一次从系统中删除一件事情,并试图排除一件事情,如果问题消失。 这种方法我们没有太多的运气。 我正在考虑build议一种附加的方法,我们开始应用程序将工作的系统组件的最低限度,并开始添加各种组合的东西。

根据您的经验,是否有理由select添加剂而不是减法排除故障,反之亦然?

实际上,我更喜欢一种迭代debugging方法:使用症状,日志文件,networking捕获,最佳实践比较和/或devise意图与构build环境等进行分析,试图find实际问题。 在很多情况下,您会发现不仅有一个导致性能问题的原因。 可能有一个以上的瓶颈,或者由于多个组件的相互作用而可能出现问题。

我发现这比盲目地去除东西,或build立一个全新的环境只是为了排除故障更好。 尽pipe后一种方法在预先规划和testing方面非常出色:我们可以称之为“开发”,“testing”或“暂存”环境,取决于它如何适应整体架构。 这确实需要你实际上计划和testingIN ADVANCE,但是,并不是每个组织都有足够的资源来做到这一点。