简短的答复: 鉴于你是写给闪电磁盘的,我 expect不希望能够以某种方式作出重大改变。 但是,如果它确实发挥作用,我会期望多条路透镜比单线透镜快,而不是慢慢。
答案越长:
我与你在大约6年前描述的方案写了类似的方案——它挂着一个嵌入的电离层的电离层中光层光纤卡,读/播下了多份同时的音频文件,以便/从一个SCSI硬盘上。 我最初是用一只读书撰写的,因为我认为这可以提供最好的投入,但我却认为情况并非如此。
In particular, when multiple threads were reading/writing at once, the SCSI layer was aware of all the pending requests from all the different threads, and was able to reorder the I/O requests such that seeking of the drive head was minimized. In the single-thread-IO scenario, on the other hand, the SCSI layer knew only about the single "next" outstanding I/O request and thus could not do that optimization. That meant extra travel for the drive head in many cases, and therefore lower throughput.
当然,你的申请不是利用SCSI,也不是与需要找工作的负责人轮流进行,因此,这或许不是你们的问题——但是,如果档案系统/硬件层了解多次同时提出的I/O申请,可能会有其他优化。 找到的唯一真正办法是尝试各种模式,衡量结果。
我的建议是把你的磁盘I/O从您的网络I/O中脱钩,把磁盘I/O转成一个校对池。 那么,你可以将I/O-thread-joint的最大规模从1个到N不等,每个大小衡量系统的业绩。 这将给你一个明确的想法,即你的具体硬件最好能做些什么,而不必再一次重写该守则。