我意识到这个数字会根据很多因素而改变,但一般来说,当我将数据写入硬盘驱动器(例如复制文件)时,将数据实际写入盘片需要多长时间? Windows说复制完成了吗?
有人能指出我正确的方向来发现有关这个主题的更多信息吗?
答案 0 :(得分:2)
如果你正在寻找一个难以理解的数字,这几乎是不可知的。通常,数据启动到达磁盘盘片的数量级为几十到几百毫秒,但在具有RAID和重复数据删除功能的大型服务器磁盘阵列中可能高达几秒钟
事件的流程就是这样的。
由于任务调度,后台线程以及您的磁盘写入可能与几十个其他进程排队,因此在Windows等通用操作系统中,步骤1-3所需的时间可能无法预测。我会说它通常在典型的PC上大约10-100毫秒。如果转到Windows资源监视器并单击“磁盘”选项卡,则可以了解平均磁盘队列长度。您可以使用性能监视器生成更精细控制的图形。
步骤3-4主要由磁盘控制器和磁盘接口(SATA,SAS等)控制。在服务器领域,您可以谈论使用FC或iSCSI网络交换机的SAN,这会产生自己的延迟。
步骤5将由它们的磁盘物理性能控制。许多消费级硬盘制造商不再发布平均寻道时间,但通常需要10-20毫秒。
关于第5步的有趣细节:有些硬盘驱动器会使用刷新缓存以获得更好的基准测试分数。
第6步将取决于您的文件系统以及您正在编写的数据量。
答案 1 :(得分:1)
你说得对,表明数据写入完成和实际写入的最后数据之间可能存在延迟。需要考虑的事项是:
设备管理器,磁盘驱动器,属性,策略 - 禁用写入缓存的选项。
您可能最好使用直接I / O,以便Windows不会将其暂时保存在文件缓存中。
如果您的程序写入数据,您可以记录已复制的内容。
如果您通过网络发送数据,则可能无法控制远程系统何时完成。
要查看发生的情况,您可以设置Perfmon日志记录。我的一个监控示例: