単一のストリームを同時に複数のテープに書き込もうとしていますが、パフォーマンスの大きな問題が発生しています。
OS:Windows 2008 R2 TapeDrive:2 * ULT3580-HH4 HBA:DellSAS6gbpsコントローラー
現在、書き込みループは次のようになります。
ReadFile(fromsource,buffer)
foreach(ltodrive)
WriteFile(todriveX,buffer)
foreach(ltodrive) // only if using overlapped IO
EndWriteFile(ltodriveX)
ドライブのブロックサイズは256Kibで、バッファサイズは2Mibです。
したがって、ドライブを1つだけ使用すると、ドライブの最大速度(120Mib /秒)に非常に近い110Mib /秒の安定した速度が得られますが、ループに別のドライブを追加すると、速度は25Mib/秒に低下します。
メタコードでわかるように、書き込み呼び出しを非同期にして、前のドライブが終了するのを待たずにすべてのドライブが書き込みを開始できるようにしましたが、問題は解決しませんでした。
足りないものがありますか、それともハードウェアの問題ですか?
一番、