4

我们有一个应用程序在数千台相同的机器上运行。相同的操作系统、相同的硬件、相同的应用程序安装。在极少数情况下,机器会锁定。Alt tab、ctrl-alt-del、应用程序都没有响应。在检查我们的应用程序日志文件后,一系列空字符被写入末尾,作为崩溃前的最后一个数据。

我希望利用这个事实来调试锁定。我的猜测是写入的空字符数相当于我需要为日志语句分配的空间,但内容实际上从未写入磁盘。我还猜测发生了磁盘 IO 问题,阻止写入,当然还有操作系统锁定。我无法证实这一点。所以我想我的问题是 - 你有没有见过这样的情况,它是如何发生的,你会如何解决它?

4

2 回答 2

2

我已经看到这种事情发生了,我认为你正在寻找正确的大方向。

发生这种情况时,我假设您能够查明确切的硬件?失败后,我建议运行 memtest (http://www.memtest.org/)。

我已经在电源、坏磁盘控制器等方面看到过这种事情。你可能会疯狂地试图追踪它们。

似乎你正在以正确的方式解决这个问题 - 看看你是否能找到一种方法来迫使问题更快地发生,当它发生时运行 memtest,运行 chkdsk /R (在此期间检查事件日志中的控制器错误)

有没有机会连接内核调试器?

任何机会 %SystemRoot%\memory.dmp 产生?

于 2011-04-19T06:50:52.433 回答
2

NTFS 不记录数据(仅记录元数据),因此可能会发生类似的事情。原因仅仅是在崩溃/挂起时,提交了元数据(文件大小、数据块分配),但没有提交数据(数据块内容)。不幸的是,这是 NTFS 的正常行为,不会让您深入了解导致挂起的问题。

所以答案是:在“正确”时间发生的崩溃可能会导致这种情况。

顺便说一句:同样的事情当然会发生在 FAT/FAT32 上。

于 2011-04-19T08:06:06.813 回答