<div dir="ltr"><div><div>Hi Krutika, <br><br></div>Attached the profile stats. I enabled profiling then ran some dd tests. Also 3 Windows VMs are running on top this volume but did not do any stress testing on the VMs. I have left the profiling enabled in case more time is needed for useful stats. <br><br></div>Thanx<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 5, 2017 at 12:48 PM, Krutika Dhananjay <span dir="ltr"><<a href="mailto:kdhananj@redhat.com" target="_blank">kdhananj@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>OK my understanding is that with preallocated disks the performance with and without shard will be the same.<br><br></div>In any case, please attach the volume profile[1], so we can see what else is slowing things down.<br><br></div>-Krutika<br><br>[1] - <a href="https://gluster.readthedocs.io/en/latest/Administrator%20Guide/Monitoring%20Workload/#running-glusterfs-volume-profile-command" target="_blank">https://gluster.readthedocs.<wbr>io/en/latest/Administrator%<wbr>20Guide/Monitoring%20Workload/<wbr>#running-glusterfs-volume-<wbr>profile-command</a><br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 5, 2017 at 2:32 PM, Abi Askushi <span dir="ltr"><<a href="mailto:rightkicktech@gmail.com" target="_blank">rightkicktech@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div>Hi Krutika, <br><br></div>I already have a preallocated disk on VM. <br></div>Now I am checking performance with dd on the hypervisors which have the gluster volume configured. <br><br></div>I tried also several values of shard-block-size and I keep getting the same low values on write performance. <br></div>Enabling client-io-threads also did not have any affect. <br><br></div>The version of gluster I am using is glusterfs 3.8.12 built on May 11 2017 18:46:20. <br></div>The setup is a set of 3 Centos 7.3 servers and ovirt 4.1, using gluster as storage. <br></div><div><br></div><div>Below are the current settings: <br></div><div><br></div><div><span><br>Volume Name: vms<br>Type: Replicate<br>Volume ID: 4513340d-7919-498b-bfe0-d836b5<wbr>cea40b<br>Status: Started<br>Snapshot Count: 0<br>Number of Bricks: 1 x (2 + 1) = 3<br>Transport-type: tcp<br>Bricks:<br>Brick1: gluster0:/gluster/vms/brick<br>Brick2: gluster1:/gluster/vms/brick<br>Brick3: gluster2:/gluster/vms/brick (arbiter)<br>Options Reconfigured:<br></span>server.event-threads: 4<br>client.event-threads: 4<br>performance.client-io-threads: on<br>features.shard-block-size: 512MB<span><br>cluster.granular-entry-heal: enable<br>performance.strict-o-direct: on<br>network.ping-timeout: 30<br>storage.owner-gid: 36<br>storage.owner-uid: 36<br>user.cifs: off<br>features.shard: on<br>cluster.shd-wait-qlength: 10000<br>cluster.shd-max-threads: 8<br>cluster.locking-scheme: granular<br>cluster.data-self-heal-algorit<wbr>hm: full<br>cluster.server-quorum-type: server<br>cluster.quorum-type: auto<br>cluster.eager-lock: enable<br>network.remote-dio: off<br>performance.low-prio-threads: 32<br></span>performance.stat-prefetch: on<span><br>performance.io-cache: off<br>performance.read-ahead: off<br>performance.quick-read: off<br>transport.address-family: inet<br>performance.readdir-ahead: on<br>nfs.disable: on<br>nfs.export-volumes: on<br><br></span></div><div><br></div>I observed that when testing with dd if=/dev/zero of=testfile bs=1G count=1 I get 65MB/s on the vms gluster volume (and the network traffic between the servers reaches ~ 500Mbps), while when testing with dd if=/dev/zero of=testfile bs=1G count=1 <b>oflag=direct </b>I get a consistent 10MB/s<b> </b>and the network traffic hardly reaching 100Mbps. <br><br>Any other things one can do?<br></div><div class="m_874780393017638440HOEnZb"><div class="m_874780393017638440h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 5, 2017 at 5:57 AM, Krutika Dhananjay <span dir="ltr"><<a href="mailto:kdhananj@redhat.com" target="_blank">kdhananj@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div>I'm assuming you are using this volume to store vm images, because I see shard in the options list.<br><br></div>Speaking from shard translator's POV, one thing you can do to improve performance is to use preallocated images.<br></div>This will at least eliminate the need for shard to perform multiple steps as part of the writes - such as creating the shard and then writing to it and then updating the aggregated file size - all of which require one network call each, which further get blown up once they reach AFR (replicate) into many more network calls.<br><br></div>Second, I'm assuming you're using the default shard block size of 4MB (you can confirm this using `gluster volume get <VOL> shard-block-size`). In our tests, we've found that larger shard sizes perform better. So maybe change the shard-block-size to 64MB (`gluster volume set <VOL> shard-block-size 64MB`).<br><br></div><div>Third, keep stat-prefetch enabled. We've found that qemu sends quite a lot of [f]stats which can be served from the (md)cache to improve performance. So enable that.<br><br></div><div>Also, could you also enable client-io-threads and see if that improves performance?<br><br></div>Which version of gluster are you using BTW?<br><br></div>-Krutika<br><br></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_874780393017638440m_7174052037606786489h5">On Tue, Sep 5, 2017 at 4:32 AM, Abi Askushi <span dir="ltr"><<a href="mailto:rightkicktech@gmail.com" target="_blank">rightkicktech@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_874780393017638440m_7174052037606786489h5"><div dir="ltr"><div><div><div>Hi all, <br><br></div>I have a gluster volume used to host several VMs (managed through oVirt). <br></div><div>The volume is a replica 3 with arbiter and the 3 servers use 1 Gbit network for the storage.</div><div><br></div><div>When testing with dd (dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct) out of the volume (e.g. writing at /root/) the performance of the dd is reported to be ~ 700MB/s, which is quite decent. When testing the dd on the gluster volume I get ~ 43 MB/s which way lower from the previous. When testing with dd the gluster volume, the network traffic was not exceeding 450 Mbps on the network interface. I would expect to reach near 900 Mbps considering that there is 1 Gbit of bandwidth available. This results having VMs with very slow performance (especially on their write operations). <br></div><div><br></div><div>The full details of the volume are below. Any advise on what can be tweaked will be highly appreciated. <br></div></div><div><br></div><div>Volume Name: vms<br>Type: Replicate<br>Volume ID: 4513340d-7919-498b-bfe0-d836b5<wbr>cea40b<br>Status: Started<br>Snapshot Count: 0<br>Number of Bricks: 1 x (2 + 1) = 3<br>Transport-type: tcp<br>Bricks:<br>Brick1: gluster0:/gluster/vms/brick<br>Brick2: gluster1:/gluster/vms/brick<br>Brick3: gluster2:/gluster/vms/brick (arbiter)<br>Options Reconfigured:<br>cluster.granular-entry-heal: enable<br>performance.strict-o-direct: on<br>network.ping-timeout: 30<br>storage.owner-gid: 36<br>storage.owner-uid: 36<br>user.cifs: off<br>features.shard: on<br>cluster.shd-wait-qlength: 10000<br>cluster.shd-max-threads: 8<br>cluster.locking-scheme: granular<br>cluster.data-self-heal-algorit<wbr>hm: full<br>cluster.server-quorum-type: server<br>cluster.quorum-type: auto<br>cluster.eager-lock: enable<br>network.remote-dio: off<br>performance.low-prio-threads: 32<br>performance.stat-prefetch: off<br>performance.io-cache: off<br>performance.read-ahead: off<br>performance.quick-read: off<br>transport.address-family: inet<br>performance.readdir-ahead: on<br>nfs.disable: on<br>nfs.export-volumes: on<br></div><div><br></div><div><br></div><div>Thanx, <br></div><div>Alex<br></div></div>
<br></div></div>______________________________<wbr>_________________<br>
Gluster-users mailing list<br>
<a href="mailto:Gluster-users@gluster.org" target="_blank">Gluster-users@gluster.org</a><br>
<a href="http://lists.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">http://lists.gluster.org/mailm<wbr>an/listinfo/gluster-users</a><br></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>