为什么 SSHFS I/O 延迟测试比本地 RAID 和 NFS 快得多?

为什么 SSHFS I/O 延迟测试比本地 RAID 和 NFS 快得多?

SSHFS 测试服务器 I/O 延迟dd返回了非常令人惊讶的结果,以至于我担心这可能是测试方法或配置存在问题。

测试 1在本地 RAID 10 磁盘上使用dd(512 字节写入一千次)

dd if=/dev/zero of=/root/testfile bs=512 count=1000 oflag=dsync

输出

1000+0 records in 1000+0 records out 512000 bytes (512 kB) copied, 3.34273 s, 153 kB/s

不用说,测试 1 的结果非常令人失望。


测试 2在已安装的 ( sshfs -o reconnect -o nonempty -o allow_other -o ServerAliveInterval=15 -o cache=yes -o kernel_cache -o Ciphers=arcfour) RAID 1 磁盘上使用dd(512 字节写入一千次)

dd if=/dev/zero of=/mnt/nas/testfile bs=512 count=1000 oflag=dsync

输出

1000+0 records in 1000+0 records out 512000 bytes (512 kB) copied, 0.0498811 s, 10.3 MB/s

考虑到我使用 NFS 的平均速度仅为 400 kB/s,因此测试 2 的结果非常令人惊讶。


控制数据 使用 dd 进行 Linux I/O 性能测试

具有 RAID 10 的服务器:在此示例中,测试数据被写入一个空分区。测试系统是一台 2HE Intel 双 CPU SC823 服务器,配备六个 147 GB SAS Fujitsu MBA3147RC(15,000 rpm)硬盘和一个启用了缓存的 Adaptec 5805 RAID 控制器以及一个 BBU。

test-sles10sp2:~ # dd if=/dev/zero of=/root/testfile bs=512 count=1000 oflag=dsync 1000+0 records in 1000+0 records out 512000 bytes (512 kB) copied, 0.083902 seconds, 6.1 MB/s


编辑:没有 dsync 的测试结果

本地 RAID 10:512000 bytes (512 kB) copied, 0.00283095 s, 181 MB/s

SSHFS RAID 1:512000 bytes (512 kB) copied, 0.0557114 s, 9.2 MB/s


问题:为什么 SSHFS 的 I/O 延迟如此之低?这是否意味着与 NFS/CIFS 等其他 NAS 相比,它更适合具有大量小读/写的缓存解决方案?

答案1

我强烈怀疑这oflag=dsync是导致这种情况的原因 - 在主机上执行的 dd 遵循此标志,但 sshfs 不会将其传递给服务器,因此它使用了缓存方法。

通常,NFS 应该是访问远程存储的最快选项之一。与 SSHFS 相比,您的数据不必经过加密和 FUSE 堆栈。

相关内容