Steam下载总是自己暂停?我的血泪排查史

上周五晚上,我打开Steam准备下个《博德之门3》的最新补丁。结果你猜怎么着?下着下着,它自己停了。我手动继续,过几分钟又停。反复十几次,我整个人都要炸了。

Steam下载总是自己暂停?我的血泪排查史

我关掉迅雷,关了浏览器,把后台程序全杀了,没用。我以为是Steam服务器的锅,换了十几个下载地区,依然没卵用。我甚至把防火墙关了,把Windows Defender实时保护也关了,Steam还是那副德行——下一点就歇菜。

我一怒之下重装了Steam

卸载、清理注册表残留、重装最新版,折腾了半小时。结果呢?刚下到2%,又停了。我当时真想把它卸了用盗版。可理智告诉我还是得解决问题。

用工具揪出真凶

我想起自己以前搞过一点系统调试,就打开了Process Monitor。加了个过滤器只看Steam进程,注意看下载暂停那一刻发生了什么。屏幕上滚过一大堆事件,我注意到在暂停瞬间,Steam对某个文件执行IRP_MJ_WRITE时,返回了STATUS_PENDING, 而且持续时间特别长。这说明什么?说明磁盘写请求没有被及时处理,被挂起了。Steam等不及,就自己暂停了下载。我立刻明白了——磁盘I/O是瓶颈。

我的游戏库放在一块西数蓝盘上,用了快五年了。平时还好,一遇到Steam这种密集读写就原形毕露。我赶紧用CrystalDiskMark测了一下,顺序写入才80MB/s,4K随机写入更是惨不忍睹。在这种硬盘上,Steam的写入验证机制简直就是噩梦。

转移阵地,立竿见影

我立马打开Steam设置,新建一个库文件夹到我那块NVMe固态上,然后把正在下载的游戏移过去。迁移过程花了十几分钟,但迁移完成后重新开始下载,进度条一路猛冲,稳稳当当地下完了,再也没停过。我试着同时在固态上下载三个游戏,居然都没问题。

问题解决了,我也冷静下来了。回想整个过程,最烦的不是问题本身,而是它没有明确错误提示,让我不断怀疑网络、怀疑软件、怀疑服务器。最后顺着蛛丝马迹找到硬盘这个关键点,确实花了很大精力。我不知道下次再添新游戏时,那块老硬盘还能撑多久。