我尝试使用 m1.medium 大小的 EC2 实例在 Amazon Web Services (AWS) 上对 GlusterFS 与 NFS 进行基准测试。我们使用 AWS EBS 作为块存储,并采用 XFS 文件系统。使用标准软件包运行 Ubuntu 12.04。
我使用 iozone 和 dd 进行基准测试。我意识到这些作为基准测试工具是不可比的,但我得到了一些奇怪的结果。
我的结果(单位:MB/s)如下(所有测试都在客户端运行):
using: iozone -c -e -i 0 -+n -r 64k -s 1000M -t 2
Direct to EBS GlusterFS NFS GlusterFS + NFS
37.5 26.8 99.8 21.1
。
using: dd if=/srv/test of=/dev/null bs=64k count=16k
Direct to EBS GlusterFS NFS GlusterFS + NFS
97.0 40.8 58.3 23.8
使用 dd 直接连接到 EBS 效果很好,但使用 iozone 实际上比 NFS 慢。为什么?
总体而言,我发现 GlusterFS 通常比 NFS 慢 1.5 到 2 倍。这些数字对于 GlusterFS 来说真实吗?
答案1
像所有基准测试一样,很难进行同类比较。它似乎会iozone
破坏系统,并且不会模拟特定负载。 dd
它只是测量吞吐量。
我碰到文件台。filebench
您可以模拟特定类型的负载,它将这些不同的测试称为“个性”。这给了我更真实的数字。我模拟了一个通常是只读的 Web 服务器。虽然filebench
在模拟中添加了一个日志附加,但在这种情况下我将其删除了。我得到了以下结果:
结果(单位:MB/s)
using: sudo filebench (webserver personality without simulation of log append)
Direct to EBS GlusterFS NFS GlusterFS + NFS
24.2 6.0 17.0 20.4
注意:filebench
是 EBS 测试中的限制,因为它在测试期间占用了 100% 的 CPU。我推测 EBS 结果会更高。
注 2:当我对日志追加进行测试时,GlusterFS 本身的延迟非常高。这可以在这个帖子。我没有调查这个高延迟问题,因为我们主要期望读取。