Skip to content

Instantly share code, notes, and snippets.

@altendorfme
Last active July 30, 2021 17:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save altendorfme/777e39a57a1f1dc132e2a34f63a3e153 to your computer and use it in GitHub Desktop.
Save altendorfme/777e39a57a1f1dc132e2a34f63a3e153 to your computer and use it in GitHub Desktop.
Simple NFS x GlusterFS Benchmark [DigitalOcean]

3x nodes / NYC3 / General Purpose / Regular Intel with SSD / 5$

Debian 10 Buster

1 node - NFS and GlusterFS

2 node - Clients

Master

NFS

apt install nfs-kernel-server -yq

nano /etc/exports
/media/nfs 10.108.0.7(rw,sync,no_subtree_check) 10.108.0.6(rw,sync,no_subtree_check)

systemctl restart nfs-kernel-server

GlusterFS

apt install glusterfs-server -yq
mkdir /media/glusterfs
systemctl start glusterd

nano /etc/hosts
10.0.108.4 glusterfs

gluster volume create glusterfsvolume glusterfs:/media/glusterfs force
gluster volume start glusterfsvolume

Clients

NFS

apt install nfs-common -yq
mkdir /media/nfs
mount -t nfs4 10.108.0.4:/media/nfs /media/nfs

nano /etc/fstab
10.108.0.4:/media/nfs	/media/share	nfs4	defaults,user,exec,noauto	0 0

mount -a

GlusterFS

apt install glusterfs-client -yq
mkdir /media/glusterfs

nano /etc/hosts
10.0.108.4 glusterfs

mount -t glusterfs glusterfs:/glusterfsvolume /media/glusterfs

Tests

Create:

time dd if=/dev/zero of=/media/{nfs|glusterfs}/testfile{A|B} bs=16k count=128k
time for i in {0..10000}; do echo 'test' > "test{A|B}${i}.txt"; done

Read:

time for i in {0..10000}; do cat "test{A|B}${i}.txt" > /dev/null; done

Master

Create:

2147483648 bytes (2.1 GB, 2.0 GiB) copied, 3.74805 s, 573 MB/s

real    0m3.769s
user    0m0.203s
sys     0m2.794s
---
real    0m0.764s
user    0m0.316s
sys     0m0.438s

Read:

real    0m19.226s
user    0m10.226s
sys     0m8.871s

NFS

Client - A

Create:

2147483648 bytes (2.1 GB, 2.0 GiB) copied, 15.8647 s, 135 MB/s

real    0m15.879s
user    0m0.190s
sys     0m2.059s
---
real    0m42.181s
user    0m0.539s
sys     0m0.723s

Read:

real    0m46.699s
user    0m11.053s
sys     0m9.261s

Client - B

Create:

2147483648 bytes (2.1 GB, 2.0 GiB) copied, 9.58897 s, 224 MB/s

real    0m9.602s
user    0m0.131s
sys     0m1.493s
---
real    0m48.767s
user    0m0.382s
sys     0m0.901s

Read:

real    0m24.189s
user    0m9.167s
sys     0m3.639s

Client - A and B

Create:

#A
real    0m13.825s
user    0m0.132s
sys     0m1.631s
#B
real    0m12.575s
user    0m0.078s
sys     0m1.441s
---
#A
real    0m47.263s
user    0m0.631s
sys     0m1.049s
#B
real    0m46.484s
user    0m0.375s
sys     0m0.837s

Read:

#A
real    0m32.566s
user    0m9.725s
sys     0m7.348s
#B
real    0m28.690s
user    0m9.334s
sys     0m3.558s

GlusterFS

Client - A

Create:

real    0m14.232s
user    0m0.199s
sys     0m2.920s
---
real    1m1.975s
user    0m0.677s
sys     0m0.984s

Read:

real    0m47.714s
user    0m10.557s
sys     0m8.427s

Client - B

Create:

real    0m11.991s
user    0m0.225s
sys     0m2.311s
---
real    0m58.949s
user    0m0.470s
sys     0m0.758s

Read:

real    0m34.978s
user    0m9.458s
sys     0m4.335s

Client - A and B

Create:

#A
real    0m18.378s
user    0m0.241s
sys     0m2.780s
#B
real    0m17.928s
user    0m0.244s
sys     0m2.312s
---
#1
real    1m33.704s
user    0m0.736s
sys     0m1.466s
#2
real    1m30.321s
user    0m0.521s
sys     0m0.953s

Read:

#A
real    0m58.574s
user    0m11.676s
sys     0m10.745s
#B
real    0m46.867s
user    0m9.795s
sys     0m4.163s

tabular

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment