How to write to multiple tape drives at the same time?
I'm trying to write a single stream to multiple tapes at the same time but I'm hitting 开发者_StackOverflow社区a massive performance issue.
OS : Windows 2008 R2 TapeDrive : 2 * ULT3580-HH4 HBA : Dell SAS 6gbps controller
Currently the write loop looks like :
ReadFile(fromsource,buffer)
foreach(ltodrive)
WriteFile(todriveX,buffer)
foreach(ltodrive) // only if using overlapped IO
EndWriteFile(ltodriveX)
The drive blocksize is 256Kib and the buffer size is 2Mib.
So if I only use 1 drive, I manage to get a steady 110Mib/sec which is very close to the drive max speed (120Mib/sec) but if I add another drive to the loop, the speed goes down to 25Mib/sec.
As you can see in the meta code, I already tried making the write call async allowing all the drives to start writing without having to wait for the previous one to finish but that didn't solved the problem.
Is there something I'm missing or is it an hardware issue ?
Best,
精彩评论