为什么我的Windows Server 2003系统在繁重的磁盘I / O下冻结?

使用Windows虚拟化,我在Windows Server 2003虚拟机上运行一个简单的脚本,将〜650,000个映像从一个目录移动到另一个目录。 它只是一个简单的循环,用于testing图片是否存在,如果存在则移动它。 非常简单,非常I / O绑定。

在运行这个脚本的时候,系统会突然冻结,我相信我的主机会在静态的I / O调用之后冻结。 我甚至发现了一个似乎被devise来处理这种I / O负载的产品,但是我仍然有这个问题,所以我希望有人能帮我确定根本原因。

如果这是Linux,我会使用像strace ,但在Windows上,我甚至不知道如何开始debugging这个问题。

有没有人有任何想法?

你最可能的问题在于650k文件在一个目录中。 一个合理的限制是32K以南的某个地方。 (技术上的限制是43亿,但是和大多数情况一样“如果你不得不问,你可能做错了” – thedailywtf.com)