我无法理解我的工作电脑出了什么问题。每当我启动它时,它都会运行一段时间,然后开始随机显示磁盘错误。显示的错误通常包含消息“没有足够的存储空间来处理此命令”,尽管根据失败的应用程序,它可能会有所不同。这种情况已经持续了数周,而且情况越来越糟。
这让我很困扰:
- 它似乎从未影响系统的关键部分(无 BSOD,无冻结)。
- 只有一些应用程序似乎受到了影响,一段时间后就无法正常运行:Outlook 2010 无法再下载 RSS 提要,Firefox 6 或 IE9 无法下载大于 3MB 的任何内容,Windows Update 失败,所有 msi 安装程序失败,Visual Studio 2010 开始以奇怪的方式失败......
- 只有在使用一段时间后才会发生这种情况(通常为 3 小时,但似乎安装程序或编译几次可以缩短时间)
- 重新启动可以解决此问题(暂时)。
系统:
- 操作系统是 Windows 7 Pro Spanish SP1,32 位
- 该系统是 HP Compaq 6000 Pro,配备 4 GB 内存(由于系统是 32 位,因此只有 3.4GB 可用)和一块 500GB 硬盘。
- 已安装的应用程序包括:Visual Studio 2010、SQL Server 2008 R2、VMWare Workstation 7、Microsoft Security Essentials、Office 2010。关闭所有相关服务和进程似乎不会改变任何东西。
我迄今为止运行的诊断程序:
- 硬盘:465GB,165GB可用
- 进程浏览器:物理和虚拟内存似乎正常(页面文件为 5.3GB,物理内存使用率 70%,系统提交 39%)
- Windows 内存诊断工具:确定
- CHKDSK 返回:
488282111 KB total disk space. 281668248 KB in 265779 files. 150188 KB in 62949 indexes. 0 KB in bad sectors. 571755 KB in use by the system. The log file has occupied 65536 kilobytes. 205891920 KB available on disk.
对于非西班牙语使用者来说,这意味着一切都好。
- SMART 诊断工具(DiskCheckup)报告所有值正常。
- 温度在正常范围内(HWinfo)。
- 事件查看器似乎不包含任何重要消息。
- 运行了 CCleaner 3,没有任何明显效果。
我考虑过一些文件数量限制(Visual Studio 项目和其他应用程序之间,硬盘上大约有 300,000 个文件),但我找不到任何限制。可能与临时文件夹的使用有关(这是我唯一能解释为什么应用程序失败而 Windows 不会失败的原因),但我无法证实这一点。
我唯一无法确定的是,chkdsk 报告日志 65MB 是否正常。似乎从 Vista 开始它总是报告这个。
您可能知道其他任何清洁/诊断工具吗?
编辑:自从我第一次发布这个问题以来,我还运行了其他几个工具:
- Seagate SeaTools(硬盘厂商的分析工具):完整测试运行OK。
- Intel Rapid 10.1(HD 控制器制造商的故障排除工具):HD 正常。
- Microsoft 桌面堆监视器:
桌面堆信息监视工具(版本 8.1.2925.0)版权所有
(c)Microsoft Corporation。保留所有权利。
会话 ID:1 总桌面数:(46464 KB - 11 个桌面)
WinStation\Desktop 堆大小(KB) 使用率(%)
WinSta0\Winlogon (s1) 128 3.6
WinSta0\Disconnect (s1) 64 3.8
WinSta0\Default (s1) 20480 3.0
msswindowstation\mssrestricteddesk (s0) 1024 0.2
__X78B95_89_IW__A8D9S1_42_ID (s0) 1024 0.2
Service-0x0-3e5$\Default (s0) 1024 0.6
Service-0x0-3e4$\Default (s0) 1024 0.3
Service-0x0-3e7$\Default (s0) 1024 2.1
WinSta0\Winlogon (s0) 128 1.9
WinSta0\Disconnect (s0) 64 3.8WinSta0\默认 (s0) 20480 0.0
一切正常,桌面堆使用率 < 5%
编辑 2:我尝试完全重置我的帐户,方法是创建一个新帐户,用这个新帐户登录并删除第一个帐户(本地权限和文件),然后用这个已删除的帐户重新登录(它是一个域帐户)。没有成功。
此外,我发现错误通常是“没有足够的存储空间来处理此命令”。在互联网上搜索后,我找到了一个旧的故障排除技巧(设置注册表项以提高 IRP 堆栈限制,无论它是什么),但它并没有改变任何东西。
答案1
首先,SMART 会撒谎。
其次,我只见过几次这种情况,但要完全诊断出来真是一场噩梦。
它可能是您机器上的恶意软件(或者是糟糕的/缓慢的防病毒软件?),但是,它很可能与硬件有关。
首先,所有机器是否具有相同的规格和构造(或足够相似),是否有其他人遇到这个问题?
如果他们有相同的机器和问题,那么很可能是软件问题。
如果没有的话,我推荐几个阶段...如果您已经尝试过,可以随意跳过任何一个阶段。
- 尝试重新加载操作系统(如果成功,则说明软件有问题)
- 更换硬盘(如果可以,则说明硬盘坏了)
如果问题仍然存在,则意味着最可能的原因是主板上的 I/O 或类似芯片损坏。虽然最安全的情况是购买新主板,但购买 RAID 适配器也有可能解决问题。
答案2
确保您的 TEMP 文件夹存在。在命令提示符下,键入放然后按 Enter。您将看到所有环境变量。其中您应该看到温度=和一个文件夹。请确保该文件夹存在并且可以写入。
答案3
回答我自己的问题:我不再能使用这台电脑了,但安装 Windows 64 位后所有问题都解决了。在 Google 上进行了几次查询后,由于无法排除故障(因为我不会为了确认而重新安装 32 位 Windows),我确信我的问题不是硬盘,而是内存……
问题是,当应用程序失败并记录异常时,通常是:处理该命令所需的空间不足。
对我来说,这意味着存储空间不足,无法处理此命令,但实际上它实际上是 Windows 错误消息的 es-ES 翻译内存不足,无法完成操作在我看来,这是一个非常具有误导性的翻译(考虑到西班牙语单词记忆确切地意味着记忆,他们本可以使用它),但我既不是英语母语者,也不是西班牙语母语者,所以我对微软持保留态度。不过,它确实让我误解了这个问题。
我认为问题在于 Windows 无法再为应用程序分配足够的页面,并且/或者分配给应用程序内存的内存页面已经过于碎片化,应用程序无法实际使用它们。
无论如何,我认为这只是因为 .net 开发对于 32 位 Windows 来说太过繁重。