我正在尝试同时将单个流写入多个磁带,但我遇到了一个巨大的性能问题。
操作系统:Windows 2008 R2 TapeDrive:2 * ULT3580-HH4 HBA:戴尔 SAS 6gbps 控制器
目前写循环看起来像:
ReadFile(fromsource,buffer)
foreach(ltodrive)
WriteFile(todriveX,buffer)
foreach(ltodrive) // only if using overlapped IO
EndWriteFile(ltodriveX)
驱动器块大小为 256Kib,缓冲区大小为 2Mib。
因此,如果我只使用 1 个驱动器,我设法获得稳定的 110Mib/秒,这非常接近驱动器的最大速度(120Mib/秒),但如果我将另一个驱动器添加到循环中,速度会下降到 25Mib/秒。
正如您在元代码中看到的那样,我已经尝试使写入调用异步,允许所有驱动器开始写入,而不必等待前一个驱动器完成,但这并没有解决问题。
是我遗漏了什么还是硬件问题?
最好的,