<br><br>On Mon, Dec 12, 2011 at 07:39, Dave Chinner &lt;<a href="mailto:david@fromorbit.com">david@fromorbit.com</a>&gt; wrote:<br>&gt;<br>&gt; &gt; ====== XFS + 2.6.29 ======<br>&gt;<br>&gt; Read 21GB @ 11k iops, 210MB/s, av latency of 1.3ms/IO<br>

&gt; Wrote 2.3GB @ 1250 iops, 20MB/s, av latency of 0.27ms/IO<br>&gt; Total 1.5m IOs, 95% @ &lt;= 2ms<br>&gt;<br>&gt; &gt; ====== XFS + 2.6.39 ======<br>&gt;<br>&gt; Read 6.5GB @ 3.5k iops, 55MB/s, av latency of 4.5ms/IO<br>

&gt; Wrote 700MB @ 386 iops, 6MB/s, av latency of 0.39ms/IO<br>&gt; Total 460k IOs, 95% @ &lt;= 10ms, 4ms &gt; 50% &lt; 10ms<br>&gt;<br>&gt; Looking at the IO stats there, this doesn&#39;t look to me like an XFS<br>&gt; problem. The IO times are much, much longer on 2.6.39, so that&#39;s the<br>

&gt; first thing to understand. If the two tests are doing identical IO<br>&gt; patterns, then I&#39;d be looking at validating raw device performance<br>&gt; first.<br>&gt;<br><br><div>Thank you Dave.<br><div><br>I also did raw device and ext4 performance test with 2.6.39, all these tests are<br>

doing identical IO patterns(non-buffered IO, 16 IO threads, 16KB block size,<br>mixed random read and write, r:w=9:1):<br>====== raw device + 2.6.39 ======<br>Read 21.7GB @ 11.6k IOPS , 185MB/s, av latency of 1.37 ms/IO<br>

Wrote 2.4GB @ 1.3k IOPS, 20MB/s, av latency of 0.095 ms/IO<br>Total 1.5M IOs, @ 96% &lt;= 2ms<br><br>====== ext4 + 2.6.39 ======<br>Read 21.7GB @ 11.6k IOPS , 185MB/s, av latency of 1.37 ms/IO<br>Wrote 2.4GB @ 1.3k IOPS, 20MB/s, av latency of 0.1 ms/IO<br>

Total 1.5M IOs, @ 96% &lt;= 2ms<br><br>====== XFS + 2.6.39 ======<br>Read 6.5GB @ 3.5k iops, 55MB/s, av latency of 4.5ms/IO<br>Wrote 700MB @ 386 iops, 6MB/s, av latency of 0.39ms/IO<br>Total 460k IOs, @ 95% &lt;= 10ms, 4ms &gt; 50% &lt; 10ms<br>

<br>here are the detailed test results:<div>== 2.6.39 ==<br><a href="http://blog.xupeng.me/wp-content/uploads/ext4-xfs-perf/2.6.39-xfs.txt">http://blog.xupeng.me/wp-content/uploads/ext4-xfs-perf/2.6.39-xfs.txt</a><br><a href="http://blog.xupeng.me/wp-content/uploads/ext4-xfs-perf/2.6.39-ext4.txt">http://blog.xupeng.me/wp-content/uploads/ext4-xfs-perf/2.6.39-ext4.txt</a><br>

<a href="http://blog.xupeng.me/wp-content/uploads/ext4-xfs-perf/2.6.39-raw.txt">http://blog.xupeng.me/wp-content/uploads/ext4-xfs-perf/2.6.39-raw.txt</a><div><br></div><div>== 2.6.29 ==</div><div><a href="http://blog.xupeng.me/wp-content/uploads/ext4-xfs-perf/2.6.29-xfs.txt">http://blog.xupeng.me/wp-content/uploads/ext4-xfs-perf/2.6.29-xfs.txt</a><br>

<a href="http://blog.xupeng.me/wp-content/uploads/ext4-xfs-perf/2.6.29-ext4.txt">http://blog.xupeng.me/wp-content/uploads/ext4-xfs-perf/2.6.29-ext4.txt</a><br><a href="http://blog.xupeng.me/wp-content/uploads/ext4-xfs-perf/2.6.29-raw.txt">http://blog.xupeng.me/wp-content/uploads/ext4-xfs-perf/2.6.29-raw.txt</a></div>

<div><br>&gt;<br>&gt; &gt; I tried different XFS format options and different mount options, but<br>&gt; &gt; it did not help.<br>&gt;<br>&gt; It won&#39;t if the problem is inthe layers below XFS.<br>&gt;<br>&gt; e.g. IO scheduler behavioural changes could be the cause (esp. if<br>

&gt; you are using CFQ), the SSD could be in different states or running<br>&gt; garbage collection intermittently and slowing things down, the<br>&gt; filesystem could be in different states (did you use a fresh<br>&gt; filesystem for each of these tests?), etc, recent mkfs.xfs will trim<br>

&gt; the entire device if the kernel supports it, etc.<br><br><br>I did all the tests on the same server with deadline scheduler, and xfsprogs version<br>is 3.1.4. I also ran tests with noop scheduler, but not big difference.<br>

<br>--<br>Xupeng Yun<br><a href="http://about.me/xupeng">http://about.me/xupeng</a></div></div></div></div>