在解决困难的网络/硬件/软件问题时,您是否有任何可以遵循的一般规则?
例如:“我通过使用第二台计算机测试外围设备来隔离问题的根源”或“我移除尽可能多的硬件来启动设备,然后逐个添加回组件,直到我可以重现问题”等等。
答案1
以下是我在与某个问题斗争了一段时间后写下的几点要点:
- 你的...是首要目标? 应清楚、简洁地陈述。目标应该非常具体。它不应该是泛泛而谈。最好一个句子。
- 你有什么问题 ?
- 只是有一个或多个问题? 如果有很多,就一次解决一个。
- 尝试重现问题
不同条件。是否能在所有可能的条件下重现该问题?它是否说明了问题的本质?
- 如果这是一个紧急问题,解决方法? 尝试寻找尽可能多的解决方法。
- 尝试很多猜测尽可能了解问题的原因。
- 尝试证明你的猜测,
实验与系统。
- 始终如一专注于你想做的事情。一次只做一件事。
- 跟踪您正在做的事情和已经尝试过的事情。
- 做不偏离离你的主要目标越来越远。不断检查你是否仍在解决你的主要问题,而不是其他问题。
- 做不固着任何一个。
还有一份很棒的调试规则列表,以 PDF 格式提供,其中包含每条规则的示例和解释。我无法快速找到 PDF,但我认为这是该列表的海报:
答案2
如果问题与互联网有关,那么很可能是 DNS 问题。
如果问题很难诊断,那么很可能是 RAM 的问题。
如果问题出在 Windows 工作站,则最快的方法是重新映像它。
如果问题发生在周五,那么这可能是一个严重的问题。
答案3
我喜欢回到科学的方法。
从 (http://en.wikipedia.org/wiki/Scientific_method)
- 定义问题
- 收集信息和资源(观察)
- 形式假设
- 进行实验并收集数据
- 分析数据
- 解释数据并得出结论,作为新假设的起点
- 记录结果
作为一般规则,我总是喜欢尝试并仔细检查我的基本假设。它有电吗,是否插好,接线是否良好。当电缆松动时,花几个小时尝试查看软件问题非常烦人。
我发现在假设创建阶段,尽可能多地提出问题的可能原因非常重要。然后,我会尝试根据测试的难易程度和可能性选择要首先测试的想法。
寻求帮助也很重要。如果可以,请咨询您的同事、供应商或对相关系统最了解的人。如果有人可以帮助您解决问题,请不要花大量时间在问题上浪费时间。
奥莱利有一本好书网络故障排除工具这本书有一套很好的步骤可供遵循,与科学方法非常相似。我发现这本书非常有用,强烈推荐。这本书讲得非常详细,并推荐了许多有用的工具。
- 陈述你的目标
- 定义系统
- 确定可能的结果
- 确定并选择要测量的内容
- 如果合适,确定测试参数和因素
- 选择工具
- 建立测量约束
- 审查实验设计
- 收集数据
- 分析数据
也可以看看:
答案4
我记得整个过程中的一般做法:
- 把我做的每一件事都写下来。
- 每次仅进行一项更改。
- 如果可能的话,请在尝试另一个更改之前撤消更改,除非取得了明确的进展。
在故障排除过程中,这里定义了我的基本方法:
- 当系统启动并运行良好时,在出现问题之前,我会尝试了解它正在做什么。Joe Richards 在这么短的篇幅里比我解释得更好。
- 我从最简单的解决方案开始。例如,没有网络连接?检查物理层。我无法告诉你有多少次间歇性连接问题不是服务器问题,而是网线半断或坏了。
- 在我开始做出改变之前,我会尝试从所有可能的来源捕捉我能看到的所有症状。
- 我会进行初步诊断测试。例如,当我被告知服务器已关闭时,我做的第一件事就是使用 ping 和 nbtstat (Windows) 来验证这一点。问题可能出在远端(借用空军技术控制部门的一句老话)。
- 我不怕做研究。Google、support.microsoft.com、eventid.net 和类似的网站都是你的好朋友。
- 我不怕向社区寻求帮助。不仅仅是像 serverfault.com 这样的网站,而且我在 Twitter 上与很多我信任和尊重的人保持联系。
- 我会根据所见来评估我找到的答案。除非我能充分考虑所见证据与解决方案中报告的内容,否则我不会假设任何一种解决方案是正确的。