<div dir="ltr">I run alot of random IO tests with gluster and it has really come a long way in the 3.7 release.  What version are you running on?  I have a couple of suggestions:<br><div><br></div><div>-Run on 3.7 if you are not already.</div><div>-Run the IOZone test you are running on the back end without gluster to verify that your HW meets your perf needs.  SSDs really scream with random IO if your current HW won&#39;t meet your needs.</div><div>-When you are running tests watch top -H on both clients and servers, look for any threads hitting 100%</div><div>-If you see hot threads bump up the server.event-threads and/or client.event-threads from the default of 2</div><div><br></div><div>HTH!</div><div><br></div><div>-b</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 23, 2015 at 3:04 AM, Susant Palai <span dir="ltr">&lt;<a href="mailto:spalai@redhat.com" target="_blank">spalai@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">++CCing gluster-devel to have more eye on this problem.<br>
<br>
Susant<br>
<br>
----- Original Message -----<br>
&gt; From: &quot;Subrata Ghosh&quot; &lt;<a href="mailto:subrata.ghosh@ericsson.com">subrata.ghosh@ericsson.com</a>&gt;<br>
&gt; To: &quot;Susant Palai &lt;<a href="mailto:spalai@redhat.com">spalai@redhat.com</a>&gt; (<a href="mailto:spalai@redhat.com">spalai@redhat.com</a>)&quot; &lt;<a href="mailto:spalai@redhat.com">spalai@redhat.com</a>&gt;, &quot;Vijay Bellur &lt;<a href="mailto:vbellur@redhat.com">vbellur@redhat.com</a>&gt;<br>
&gt; (<a href="mailto:vbellur@redhat.com">vbellur@redhat.com</a>)&quot; &lt;<a href="mailto:vbellur@redhat.com">vbellur@redhat.com</a>&gt;<br>
&gt; Cc: &quot;Subrata Ghosh&quot; &lt;<a href="mailto:subrata.ghosh@ericsson.com">subrata.ghosh@ericsson.com</a>&gt;<br>
&gt; Sent: Sunday, 19 July, 2015 7:57:28 PM<br>
&gt; Subject: Iusses with Random read/write<br>
&gt;<br>
&gt; Hi Vijay/Prashant,<br>
&gt;<br>
&gt; How you are  you :).<br>
&gt;<br>
&gt; We need your  immediate  help / suggestion  to meet our random I/IO<br>
&gt; performance metrics.<br>
&gt; Currently we have performance issues with random read/write - our basic<br>
&gt; requirement 20 MB/sec for random I/O.<br>
&gt;<br>
&gt; We tried with both &quot;iozone&quot; and &quot;fio&quot;, received almost same ( random I/O)<br>
&gt; performance which is not meeting our fundamental I/IO requirements.<br>
&gt;<br>
&gt; Our use case is as below.<br>
&gt;<br>
&gt; &quot;Application running on different cards Writes/Reads (random) continuous<br>
&gt; files to the volume comprising with storage belonging from different cards<br>
&gt; in the distributed system, where replica presence  across cards and<br>
&gt; applications are using non-local storages.&quot;<br>
&gt; We have verified and identified  the bottleneck mostly on Gluster Client side<br>
&gt; inside the application, however gluster server to server I/O speed looks<br>
&gt; enough good. Performance tuning on gluster server side would not expected to<br>
&gt; help.<br>
&gt;<br>
&gt; We also cross verified checked using NFS client we are getting far better<br>
&gt; performance, but we cannot use NFS client /libgfapi because of use case<br>
&gt; limitation ( brick failures cases etc..)<br>
&gt;<br>
&gt; Please throw some lights or thoughts to improve gluster client to achieve &gt;<br>
&gt; 20 MB/Secs<br>
&gt;<br>
&gt; Observations:<br>
&gt;<br>
&gt; Fio:<br>
&gt;<br>
&gt;<br>
&gt; lease find the test results of Random write &amp; read in 2 APPs scenarios.<br>
&gt;<br>
&gt; Scenario<br>
&gt;<br>
&gt; APP_1<br>
&gt;<br>
&gt; APP_2<br>
&gt;<br>
&gt; File size<br>
&gt;<br>
&gt; No of AMC&#39;s<br>
&gt;<br>
&gt; Random-Write<br>
&gt;<br>
&gt; 3.06  MB/s<br>
&gt;<br>
&gt; 3.02 MB/s<br>
&gt;<br>
&gt; 100 MB<br>
&gt;<br>
&gt; 4<br>
&gt;<br>
&gt; Random-Read<br>
&gt;<br>
&gt; 8.1 MB/s<br>
&gt;<br>
&gt; 8.4 MB/s<br>
&gt;<br>
&gt; 100 MB<br>
&gt;<br>
&gt; 4<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Iozone:<br>
&gt;<br>
&gt; ./iozone -R -l 1 -u 1 -r 4k -s 2G -F /home/cdr/f1 | tee -a<br>
&gt; /tmp/iozone_results.txt &amp;<br>
&gt;<br>
&gt;<br>
&gt; APP 1<br>
&gt;<br>
&gt; APP2<br>
&gt;<br>
&gt; File Size : 2GB<br>
&gt;<br>
&gt; File size : 2GB<br>
&gt;<br>
&gt; Record size = 4 Kbytes<br>
&gt;<br>
&gt; Record size = 4 Kbytes<br>
&gt;<br>
&gt; Output is in Kbytes/sec<br>
&gt;<br>
&gt; Output is in Kbytes/sec<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Initial write    41061.78<br>
&gt;<br>
&gt; Initial write    41167.36<br>
&gt;<br>
&gt;<br>
&gt; Rewrite    40395.64<br>
&gt;<br>
&gt; Rewrite    40810.41<br>
&gt;<br>
&gt;<br>
&gt; Read   262685.69<br>
&gt;<br>
&gt; Read   269644.62<br>
&gt;<br>
&gt;<br>
&gt; Re-read  263751.66<br>
&gt;<br>
&gt; Re-read   270760.62<br>
&gt;<br>
&gt;<br>
&gt; Reverse Read   27715.72<br>
&gt;<br>
&gt; Reverse Read    28604.22<br>
&gt;<br>
&gt;<br>
&gt; Stride read   83776.44<br>
&gt;<br>
&gt; Stride read    84347.88<br>
&gt;<br>
&gt;<br>
&gt; Random read    16239.74 (15.8 MB/s )<br>
&gt;<br>
&gt; Random read    15815.94  (15.4 MB/s )<br>
&gt;<br>
&gt;<br>
&gt; Mixed workload    16260.95<br>
&gt;<br>
&gt; Mixed workload    15787.55<br>
&gt;<br>
&gt;<br>
&gt; Random write     3356.57 (3.3 MB/s )<br>
&gt;<br>
&gt; Random write     3365.17 ( 3.3 MB/s)<br>
&gt;<br>
&gt;<br>
&gt; Pwrite    40914.55<br>
&gt;<br>
&gt; Pwrite    40692.34<br>
&gt;<br>
&gt;<br>
&gt; Pread   260613.83<br>
&gt;<br>
&gt; Pread   269850.59<br>
&gt;<br>
&gt;<br>
&gt; Fwrite    40412.40<br>
&gt;<br>
&gt; Fwrite    40369.78<br>
&gt;<br>
&gt;<br>
&gt; Fread   261506.61<br>
&gt;<br>
&gt; Fread   267142.41<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Some of the info on performance testing is at<br>
&gt; <a href="http://www.gluster.org/community/documentation/index.php/Performance_Testing" rel="noreferrer" target="_blank">http://www.gluster.org/community/documentation/index.php/Performance_Testing</a><br>
&gt; Also pls check iozone limitations listed there.<br>
&gt;<br>
&gt; &quot;WARNING: random I/O testing in iozone is very restricted by iozone<br>
&gt; constraint that it must randomly read then randomly write the entire file!<br>
&gt; This is not what we want - instead it should randomly read/write for some<br>
&gt; fraction of file size or time duration, allowing us to spread out more on<br>
&gt; the disk while not waiting too long for test to finish. This is why fio<br>
&gt; (below) is the preferred test tool for random I/O workloads.&quot;<br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
Gluster-devel mailing list<br>
<a href="mailto:Gluster-devel@gluster.org">Gluster-devel@gluster.org</a><br>
<a href="http://www.gluster.org/mailman/listinfo/gluster-devel" rel="noreferrer" target="_blank">http://www.gluster.org/mailman/listinfo/gluster-devel</a><br>
</blockquote></div><br></div>