<div dir="ltr">Hi Ben<div><br></div><div>Thank you. </div><div>I just ran some tests with the same data on EC and R3 volumes (same hardware).</div><div>R3 is a lot faster....</div><div><br></div><div><div>EC</div><div><br></div><div>untar 48.879s</div><div>find 2.993s</div><div>rm 11.244s</div><div><br></div><div>R3</div><div><br></div><div>untar 10.938s</div><div>find 0.722s</div><div>rm 4.144s</div></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 27, 2017 at 3:12 AM, Ben Turner <span dir="ltr">&lt;<a href="mailto:bturner@redhat.com" target="_blank">bturner@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Have you done any testing with replica 2/3?  IIRC my replica 2/3 tests out performed EC on smallfile workloads, it may be worth looking into if you can&#39;t get EC up to where you need it to be.<br>
<span class="HOEnZb"><font color="#888888"><br>
-b<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
----- Original Message -----<br>
&gt; From: &quot;Dmitri Chebotarov&quot; &lt;<a href="mailto:4dimach@gmail.com">4dimach@gmail.com</a>&gt;<br>
&gt; Cc: &quot;gluster-users&quot; &lt;<a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a>&gt;<br>
&gt; Sent: Tuesday, September 26, 2017 9:57:55 AM<br>
&gt; Subject: Re: [Gluster-users] sparse files on EC volume<br>
&gt;<br>
&gt; Hi Xavi<br>
&gt;<br>
&gt; At this time I&#39;m using &#39;plain&#39; bricks with XFS. I&#39;ll be moving to LVM cached<br>
&gt; bricks.<br>
&gt; There is no RAID for data bricks, but I&#39;ll be using hardware RAID10 for SSD<br>
&gt; cache disks (I can use &#39;writeback&#39; cache in this case).<br>
&gt;<br>
&gt; &#39;small file performance&#39; is the main reason I&#39;m looking at different options,<br>
&gt; i.e. using formated sparse files.<br>
&gt; I spent considerable amount of time tuning 10GB/kernel/gluster to reduce<br>
&gt; latency - the small file performance improved ~50% but it&#39;s still no good<br>
&gt; enough, especially when I need to use Gluster for /home folders.<br>
&gt;<br>
&gt; I understand limitations and single point of failure in case with sparse<br>
&gt; files. I&#39;m considering different options to provide HA (pacemaker/corosync,<br>
&gt; keepalived or using VMs - RHEV - to deliver storage).<br>
&gt;<br>
&gt; Thank you for your reply.<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Sep 26, 2017 at 3:55 AM, Xavi Hernandez &lt; <a href="mailto:jahernan@redhat.com">jahernan@redhat.com</a> &gt;<br>
&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; Hi Dmitri,<br>
&gt;<br>
&gt; On 22/09/17 17:07, Dmitri Chebotarov wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Hello<br>
&gt;<br>
&gt; I&#39;m running some tests to compare performance between Gluster FUSE mount and<br>
&gt; formated sparse files (located on the same Gluster FUSE mount).<br>
&gt;<br>
&gt; The Gluster volume is EC (same for both tests).<br>
&gt;<br>
&gt; I&#39;m seeing HUGE difference and trying to figure out why.<br>
&gt;<br>
&gt; Could you explain what hardware configuration are you using ?<br>
&gt;<br>
&gt; Do you have a plain disk for each brick formatted in XFS, or do you have some<br>
&gt; RAID configuration ?<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Here is an example:<br>
&gt;<br>
&gt; GlusterFUSE mount:<br>
&gt;<br>
&gt; # cd /mnt/glusterfs<br>
&gt; # rm -f testfile1 ; dd if=/dev/zero of=testfile1 bs=1G count=1<br>
&gt; 1+0 records in<br>
&gt; 1+0 records out<br>
&gt; 1073741824 bytes (1.1 GB) copied, 9.74757 s, *110 MB/s*<br>
&gt;<br>
&gt; Sparse file (located on GlusterFUSE mount):<br>
&gt;<br>
&gt; # truncate -l 100GB /mnt/glusterfs/xfs-100G.img<br>
&gt; # mkfs.xfs /mnt/glusterfs/xfs-100G.img<br>
&gt; # mount -o loop /mnt/glusterfs/xfs-100G.img /mnt/xfs-100G<br>
&gt; # cd /mnt/xfs-100G<br>
&gt; # rm -f testfile1 ; dd if=/dev/zero of=testfile1 bs=1G count=1<br>
&gt; 1+0 records in<br>
&gt; 1+0 records out<br>
&gt; 1073741824 bytes (1.1 GB) copied, 1.20576 s, *891 MB/s*<br>
&gt;<br>
&gt; The same goes for working with small files (i.e. code file, make, etc) with<br>
&gt; the same data located on FUSE mount vs formated sparse file on the same FUSE<br>
&gt; mount.<br>
&gt;<br>
&gt; What would explain such difference?<br>
&gt;<br>
&gt; First of all, doing tests with relatively small files tends to be misleading<br>
&gt; because of caching capacity of the operating system (to minimize that, you<br>
&gt; can add &#39;conv=fsync&#39; option to dd). You should do tests with file sizes<br>
&gt; bigger than the amount of physical memory on servers. This way you minimize<br>
&gt; cache effects and see the real sustained performance.<br>
&gt;<br>
&gt; A second important point to note is that gluster is a distributed file system<br>
&gt; that can be accessed simultaneously by more than one client. This means that<br>
&gt; consistency must be assured in all cases, which makes things go to bricks<br>
&gt; sooner than local filesystems normally do.<br>
&gt;<br>
&gt; In your case, all data saved to the fuse volume will most probably be present<br>
&gt; on bricks once the dd command completes. On the other side, the test through<br>
&gt; the formatted sparse file, most probably, is keeping most of the data in the<br>
&gt; cache of the client machine.<br>
&gt;<br>
&gt; Note that using the formatted sparse file makes it possible a better use of<br>
&gt; local cache, improving (relatively) small file access, but on the other<br>
&gt; side, this filesystem can only be used from a single client (single mount).<br>
&gt; If this client fails for some reason, you will loose access to your data.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; How does Gluster work with sparse files in general? I may move some of the<br>
&gt; data on gluster volumes to formated sparse files..<br>
&gt;<br>
&gt; Gluster works fine with sparse files. However you should consider the<br>
&gt; previous points before choosing the formatted sparse files option. I guess<br>
&gt; that the sustained throughput will be very similar for bigger files.<br>
&gt;<br>
&gt; Regards,<br>
&gt;<br>
&gt; Xavi<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Thank you.<br>
&gt;<br>
&gt;<br>
&gt; ______________________________<wbr>_________________<br>
&gt; Gluster-users mailing list<br>
&gt; <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
&gt; <a href="http://lists.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">http://lists.gluster.org/<wbr>mailman/listinfo/gluster-users</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ______________________________<wbr>_________________<br>
&gt; Gluster-users mailing list<br>
&gt; <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
&gt; <a href="http://lists.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">http://lists.gluster.org/<wbr>mailman/listinfo/gluster-users</a><br>
</div></div></blockquote></div><br></div>