使用 Windows 虚拟化,我在 Windows Server 2003 虚拟机上运行了一个简单的脚本,将大约 650,000 张图像从一个目录移动到另一个目录。它只不过是一个简单的循环,用于测试图片是否存在,如果存在则移动它。非常简单,但 I/O 限制很大。
运行此脚本时系统会突然冻结,我认为这是因为主机在执行了一定数量的 I/O 调用后冻结了。我甚至找到了一款似乎专门设计用于处理此类 I/O 负载的产品,但我仍然遇到问题,所以我希望有人能帮助我确定根本原因。
如果这是 Linux,我会使用类似的工具strace
,但在 Windows 上,我甚至不确定如何开始调试这个问题。
有人有什么想法吗?
答案1
您的问题很可能出在单个目录中的 650k 个文件上。合理的限制是 32k 以下。(技术限制是 43 亿,但大多数情况下“如果您不得不问,那您可能做错了” - thedailywtf.com)