<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 13, 2019 at 10:51 AM Raghavendra Gowdappa &lt;<a href="mailto:rgowdapp@redhat.com">rgowdapp@redhat.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 12, 2019 at 5:38 PM Raghavendra Gowdappa &lt;<a href="mailto:rgowdapp@redhat.com" target="_blank">rgowdapp@redhat.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>All,</div><div><br></div><div>We&#39;ve found perf xlators io-cache and read-ahead not adding any performance improvement. At best read-ahead is redundant due to kernel read-ahead </div></div></div></blockquote><div><br></div><div>One thing we are still figuring out is whether kernel read-ahead is tunable. From what we&#39;ve explored, it _looks_ like (may not be entirely correct), ra is capped at 128KB. If that&#39;s the case, I am interested in few things:</div><div>* Are there any realworld applications/usecases, which would benefit from larger read-ahead (Manoj says block devices can do ra of 4MB)?</div></div></div></div></div></blockquote><div><br></div><div>kernel read-ahead is adaptive but influenced by the read-ahead setting on the block device (/sys/block/&lt;dev&gt;/queue/read_ahead_kb), which can be tuned. For RHEL specifically, the default is 128KB (last I checked) but the default RHEL tuned-profile, throughput-performance, bumps that up to 4MB. It should be fairly easy to rig up a testĀ  where 4MB read-ahead on the block device gives better performance than 128KB read-ahead.</div><div><br></div><div>-- ManojĀ </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_quote"><div>* Is the limit on kernel ra tunable a hard one? IOW, what does it take to make it to do higher ra? If its difficult, can glusterfs read-ahead provide the expected performance improvement for these applications that would benefit from aggressive ra (as glusterfs can support larger ra sizes)?</div><div><br></div><div>I am still inclined to prefer kernel ra as I think its more intelligent and can identify more sequential patterns than Glusterfs read-ahead [1][2].</div><div>[1] <a href="https://www.kernel.org/doc/ols/2007/ols2007v2-pages-273-284.pdf" target="_blank">https://www.kernel.org/doc/ols/2007/ols2007v2-pages-273-284.pdf</a></div><div>[2] <a href="https://lwn.net/Articles/155510/" target="_blank">https://lwn.net/Articles/155510/</a></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>and at worst io-cache is degrading the performance for workloads that doesn&#39;t involve re-read. Given that VFS already have both these functionalities, I am proposing to have these two translators turned off by default for native fuse mounts.</div><div><br></div><div>For non-native fuse mounts like gfapi (NFS-ganesha/samba) we can have these xlators on by having custom profiles. Comments?<br></div><div><br></div><div>[1] <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1665029" target="_blank">https://bugzilla.redhat.com/show_bug.cgi?id=1665029</a></div><div><br></div><div>regards,</div><div>Raghavendra<br></div></div></div>
</blockquote></div></div></div></div>
</blockquote></div></div>