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 的结果非常令人惊讶。
具有 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 堆栈。