对于某些读/写工作负载,我使用esata端口倍增从4磁盘arrays中获得30 MiB / s。 当我将完全相同的arrays移动到四个单独的sata连接时,我获得90 MiB / s的工作量。 这是乘数的预期性能影响? 如果不是的话,我该如何缩小软件,控制器或机箱之间的问题?
即使在多年来尝试了大量variables之后,我也得到了完全相同的结果:
当我多年前做了我的第一个eSATA机箱时,我认为速度慢的原因与使用PCI(33mhz)卡,不成熟的SATA驱动程序或者SATA-1.5Gbps 5400 RPM驱动器有关。 但是现在用x1 6Gbps控制器,3.0内核和6Gbps 7200rpm HDDS,仍然没有任何改变。 我仍然得到相同的30 MiB / s的特定工作量,直到我将它移动到单独的SATA连接。
这是所有端口乘法实现的基本限制吗?
是。 performance不佳。
ATA协议从来不打算将数据传送到多个驱动器(它实际上是基于ISA总线,将通信通道扩展到存储驱动器)。 IDE接口通过传输“主”和“从”设备的数据来欺骗这个限制。 然而,SATA没有等效的机制,因为它仅用于每个电缆连接的单个设备。
eSATA端口倍增器可用作可select多个物理介质的ATA目标(因此,一次只能寻址一个物理设备,并且在切换到其他设备时会有一些延迟)。 你可以把它比作旧的光学库。
这与使用扩展器和内置启动器/目标路由(SAS 2.0+函数有点像交换式以太网networking)构build的SAS截然不同。 SAS还能够将多条线路粘接到中继线上,从而允许通过多条中继线同时接入多个设备。
更新:
显然有更新的控制器支持FIS,允许多个驱动器同时“活动”。 这应该使性能比上面描述的要高得多。 显然在这个时候只有一个制造商生产这些芯片。 我仍然强烈build议在服务器环境中从SATA开始。 如果您必须使用SATA驱动器,请考虑使用SAS控制器和扩展器。
您确定您尝试过支持FIS(帧信息结构)端口倍增的控制器和端口倍增器吗?
AFAIK仅支持Silicon Image控制器和乘法器(SiI3726),但性能与相同速度的SAS(80-90%链路饱和)相似。