<div dir="ltr">Hi again,<div><br></div><div>I&#39;d like to expand on the performance issues and plead for help. Here&#39;s one case which shows these odd hiccups: <a href="https://i.imgur.com/CXBPjTK.gifv">https://i.imgur.com/CXBPjTK.gifv</a>.<div><br></div><div>In this GIF where I switch 

<span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">back and forth</span>

between copy operations on 2 servers, I&#39;m copying a 10GB dir full of .apk and image files.</div><div><br></div><div>On server &quot;hive&quot; I&#39;m copying straight from the main disk to an attached volume block (xfs). As you can see, the transfers are relatively speedy and don&#39;t hiccup.</div><div>On server &quot;citadel&quot; I&#39;m copying the same set of data to a 4-replicate gluster which uses block storage as a brick. As you can see, performance is much worse, and there are frequent pauses for many seconds where nothing seems to be happening - just freezes.<br></div><div><br></div><div>All 4 servers have the same specs, and all of them have performance issues with gluster and no such issues when raw xfs block storage is used.</div><div><br></div><div>hive has long finished copying the data, while citadel is barely chugging along and is expected to take probably half an hour to an hour. I have over 1TB of data to migrate, at which point if we went live, I&#39;m not even sure gluster would be able to keep up instead of bringing the machines and services down.</div><div><br></div><div><br></div><div><br></div><div>Here&#39;s the cluster config, though it didn&#39;t seem to make any difference performance-wise before I applied the customizations vs after.</div><div><br></div><div><div>Volume Name: apkmirror_data1</div><div>Type: Replicate</div><div>Volume ID: 11ecee7e-d4f8-497a-9994-ceb144d6841e</div><div>Status: Started</div><div>Snapshot Count: 0</div><div>Number of Bricks: 1 x 4 = 4</div><div>Transport-type: tcp</div><div>Bricks:</div><div>Brick1: nexus2:/mnt/nexus2_block1/apkmirror_data1</div><div>Brick2: forge:/mnt/forge_block1/apkmirror_data1</div><div>Brick3: hive:/mnt/hive_block1/apkmirror_data1</div><div>Brick4: citadel:/mnt/citadel_block1/apkmirror_data1</div><div>Options Reconfigured:</div><div>cluster.quorum-count: 1</div><div>cluster.quorum-type: fixed</div><div>network.ping-timeout: 5</div><div>network.remote-dio: enable</div><div>performance.rda-cache-limit: 256MB</div><div>performance.readdir-ahead: on</div><div>performance.parallel-readdir: on</div><div>network.inode-lru-limit: 500000</div><div>performance.md-cache-timeout: 600</div><div>performance.cache-invalidation: on</div><div>performance.stat-prefetch: on</div><div>features.cache-invalidation-timeout: 600</div><div>features.cache-invalidation: on</div><div>cluster.readdir-optimize: on</div><div>performance.io-thread-count: 32</div><div>server.event-threads: 4</div><div>client.event-threads: 4</div><div>performance.read-ahead: off</div><div>cluster.lookup-optimize: on</div><div>performance.cache-size: 1GB</div><div>cluster.self-heal-daemon: enable</div><div>transport.address-family: inet</div><div>nfs.disable: on</div><div>performance.client-io-threads: on</div></div><div><br></div><div><br></div><div>The mounts are done as follows in /etc/fstab:</div><div>/dev/disk/by-id/scsi-0Linode_Volume_citadel_block1 /mnt/citadel_block1 xfs defaults 0 2<br></div><div>localhost:/apkmirror_data1 /mnt/apkmirror_data1 glusterfs defaults,_netdev 0 0<br></div><div><br></div><div>I&#39;m really not sure if direct-io-mode mount tweaks would do anything here, what the value should be set to, and what it is by default.</div><div><br></div><div>The OS is OpenSUSE 42.3, 64-bit. 80GB of RAM, 20 CPUs, hosted by Linode.</div><div><br></div><div>I&#39;d really appreciate any help in the matter. </div><div><br></div><div>Thank you.</div></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><br>Sincerely,<br>Artem<br><br>--<br>Founder, <a href="http://www.androidpolice.com" target="_blank">Android Police</a>, <a href="http://www.apkmirror.com/" style="font-size:12.8000001907349px" target="_blank">APK Mirror</a><span style="font-size:12.8000001907349px">, Illogical Robot LLC</span></div><div dir="ltr"><a href="http://beerpla.net/" target="_blank">beerpla.net</a> | <a href="https://plus.google.com/+ArtemRussakovskii" target="_blank">+ArtemRussakovskii</a> | <a href="http://twitter.com/ArtemR" target="_blank">@ArtemR</a><br></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">On Thu, Apr 5, 2018 at 11:13 PM, Artem Russakovskii <span dir="ltr">&lt;<a href="mailto:archon810@gmail.com" target="_blank">archon810@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>I&#39;m trying to squeeze performance out of gluster on 4 80GB RAM 20-CPU machines where Gluster runs on attached block storage (Linode) in (4 replicate bricks), and so far everything I tried results in sub-optimal performance.</div><div><br></div><div>There are many files - mostly images, several million - and many operations take minutes, copying multiple files (even if they&#39;re small) suddenly freezes up for seconds at a time, then continues, iostat frequently shows large r_await and w_awaits with 100% utilization for the attached block device, etc.</div><div><br></div><div>But anyway, there are many guides out there for small-file performance improvements, but more explanation is needed, and I think more tweaks should be possible.<br></div><div><br></div><div>My question today is about performance.cache-size. Is this a size of cache in RAM? If so, how do I view the current cache size to see if it gets full and I should increase its size? Is it advisable to bump it up if I have many tens of gigs of RAM free? </div><div><br></div><div><br></div><div><br></div><div>More generally, in the last 2 months since I first started working with gluster and set a production system live, I&#39;ve been feeling frustrated because Gluster has a lot of poorly-documented and confusing options. I really wish documentation could be improved with examples and better explanations.</div><div><br></div><div>Specifically, it&#39;d be absolutely amazing if the docs offered a strategy for setting each value and ways of determining more optimal values. For example, for performance.cache-size, if it said something like &quot;run command abc to see your current cache size, and if it&#39;s hurting, up it, but be aware that it&#39;s limited by RAM,&quot; it&#39;d be already a huge improvement to the docs. And so on with other options.</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">The gluster team is quite helpful on this mailing list, but in a reactive rather than proactive way. Perhaps it&#39;s tunnel vision once you&#39;ve worked on a project for so long where less technical explanations and even proper documentation of options takes a back seat, but I encourage you to be more proactive about helping us understand and optimize Gluster.</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">Thank you.</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div><div class="m_1420630595765814996gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Sincerely,<br>Artem<br><br>--<br>Founder, <a href="http://www.androidpolice.com" target="_blank">Android Police</a>, <a href="http://www.apkmirror.com/" style="font-size:12.8px" target="_blank">APK Mirror</a><span style="font-size:12.8px">, Illogical Robot LLC</span></div><div dir="ltr"><a href="http://beerpla.net/" target="_blank">beerpla.net</a> | <a href="https://plus.google.com/+ArtemRussakovskii" target="_blank">+ArtemRussakovskii</a> | <a href="http://twitter.com/ArtemR" target="_blank">@ArtemR</a><br></div></div></div></div></div></div></div></div></div></div></div>
</div></div>
</blockquote></div><br></div>