<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.kerneltrap.org"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>KernelTrap - performance</title>
 <link>http://www.kerneltrap.org/taxonomy/term/357/0</link>
 <description></description>
 <language>en-local</language>
<item>
 <title>64-bit Application Thread Creation Performance</title>
 <link>http://www.kerneltrap.org/Linux/64-bit_Application_Thread_Creation_Performance</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/linux&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-Linux.gif&quot; alt=&quot;Linux news&quot; title=&quot;Linux news&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;A &lt;a href=&quot;http://kerneltrap.org/mailarchive/linux-kernel/2008/8/15/2950234/thread&quot;&gt;recent discussion&lt;/a&gt; on the Linux Kernel mailing list noted that threaded 64-bit applications suffer a drastic slowdown in pthread_create performance when stack utilization goes above 4GB.  Ingo Molnar offered an explanation of the problem, &quot;&lt;i&gt;unfortunately MAP_32BIT use in 64-bit apps for stacks was apparently created without foresight about what would happen in the MM when thread stacks exhaust 4GB.  The problem is that MAP_32BIT is used both as a performance hack for 64-bit apps and as an ABI compat mechanism for 32-bit apps. So we cannot just start disregarding MAP_32BIT in the kernel - we&#039;d break 32-bit compat apps and/or compat 32-bit libraries.&lt;/i&gt;&quot;  The original report noted that once the shared stack goes above 4GB in size, thread creation can take as long as 10 milliseconds, a slowdown described as &quot;&lt;i&gt;quite unacceptable&lt;/i&gt;&quot;.&lt;/p&gt;
&lt;p&gt;Ingo created a patch introducing a new MAP_STACK flag for glibc to be used instead of MAP_32BIT and avoid imposing the 32-bit performance limitation on threaded 64-bit applications.  He noted, &quot;&lt;i&gt;glibc can switch to this new flag straight away - it will be ignored by the kernel.&lt;/i&gt;&quot;  The new flag was &lt;a href=&quot;http://kerneltrap.org/mailarchive/git-commits-head/2008/8/15/2955014&quot;&gt;quickly merged&lt;/a&gt; upstream, and changes &lt;a href=&quot;http://kerneltrap.org/mailarchive/git-commits-head/2008/8/15/2955014&quot;&gt;were planned&lt;/a&gt; for glibc.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/Linux/64-bit_Application_Thread_Creation_Performance&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/Linux/64-bit_Application_Thread_Creation_Performance#comments</comments>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1315">64-bit</category>
 <category domain="http://www.kerneltrap.org/Ingo_Molnar">Ingo Molnar</category>
 <category domain="http://www.kerneltrap.org/Linux">Linux</category>
 <category domain="http://www.kerneltrap.org/performance">performance</category>
 <category domain="http://www.kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Mon, 18 Aug 2008 19:51:12 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">16512 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>HAMMER Performance and Mirroring</title>
 <link>http://www.kerneltrap.org/DragonFlyBSD/HAMMER_Performance_and_Mirroring</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/dragonflybsd&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-FlyBSD_1.gif&quot; alt=&quot;DragonFlyBSD&quot; title=&quot;DragonFlyBSD&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Matthew Dillon continues to make significant progress on his HAMMER clustering filesystem for DragonFly BSD.  He labeled the latest release 56c, noting that it, &quot;&lt;i&gt;represents an additional significant improvement in performance, [also including] bug fixes and most of the final media changes.&lt;/i&gt;&quot;  A significant improvement in write performance was obtained by making the filesystem block size automatically increase from 16K to 64K when a file grows to larger than 1 MB.  One remaining media change is required to optimize mtime and atime storage, at which point HAMMER will go into testing and bug fixing mode.  Matt noted, &quot;&lt;i&gt;HAMMER&#039;s performance is extremely good now, and its system cpu overhead has dropped to roughly the same that we get from UFS&lt;/i&gt;&quot;, adding, &quot;&lt;i&gt;HAMMER is now able to sustain full disk bandwidth for bulk reads and writes.  HAMMER continues to have far superior random-write performance, whether the system caches are blown out or not.&lt;/i&gt;&quot;  Discussing future plans for the filesystem, Matt noted, &quot;&lt;i&gt;I could go on and on, there&#039;s so much that can be done with this filesytem :-)&lt;/i&gt;&quot;  Regarding one of these plans, he offered:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;I am not going to promise it, but there is a slight chance I will be able to get mirroring working by the release.  I figured out how to do it, finally.  Basically the solution is to add another field to the B-Tree&#039;s internal elements... the &#039;most recent&#039; transaction id, and to propogate it up all the way to the root of the tree.  The mirroring code can then optimally scan the B-Tree and pick out all records that have changed relative to some transaction id, allowing it to quickly &#039;pick up&#039; where it left off and construct a record-level mirror over a fully asynchronous link, without any queueing.  You can&#039;t get much better then that, frankly. &quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/DragonFlyBSD/HAMMER_Performance_and_Mirroring&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/DragonFlyBSD/HAMMER_Performance_and_Mirroring#comments</comments>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1131">b-tree</category>
 <category domain="http://www.kerneltrap.org/DragonFlyBSD">DragonFlyBSD</category>
 <category domain="http://www.kerneltrap.org/filesystem">filesystem</category>
 <category domain="http://www.kerneltrap.org/HAMMER">HAMMER</category>
 <category domain="http://www.kerneltrap.org/Matthew_Dillon">Matthew Dillon</category>
 <category domain="http://www.kerneltrap.org/performance">performance</category>
 <category domain="http://www.kerneltrap.org/news/dragonflybsd">DragonFlyBSD</category>
 <pubDate>Fri, 20 Jun 2008 15:28:11 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">16325 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>Improving HAMMER Performance</title>
 <link>http://www.kerneltrap.org/DragonFylBSD/Improving_HAMMER_Performance</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/dragonflybsd&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-FlyBSD_1.gif&quot; alt=&quot;DragonFlyBSD&quot; title=&quot;DragonFlyBSD&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&quot;&lt;i&gt;After another round of performance tuning HAMMER all my benchmarks show HAMMER within 10% of UFS&#039;s performance, and it beats the shit out of UFS in certain tests such as file creation and random write performance,&lt;/i&gt;&quot; noted DragonFly BSD creator Matthew Dillon, &lt;a href=&quot;http://kerneltrap.org/mailarchive/dragonflybsd-kernel/2008/6/12/2100484&quot;&gt;providing an update on his new clustering filesystem&lt;/a&gt;.  He continued, &quot;&lt;i&gt;read performance is good but drops more then UFS under heavy write loads (but write performance is much better at the same time).&lt;/i&gt;&quot;  He then referred to the &lt;a href=&quot;http://www.pureftpd.org/project/blogbench&quot;&gt;blogbench&lt;/a&gt; benchmark noting, &quot;&lt;i&gt;now when UFS gets past blog #300 and blows out the system caches, UFS&#039;s write performance goes completely to hell but it is able to maintain good read performance.&lt;/i&gt;&quot;  Matthew then compared this to HAMMER:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;HAMMER is the opposite.  It can maintain fairly good write performance long after the system caches have been blown out, but read performance drops to about the same as its write performance (remember, this is blogbench doing reads from random files).  Here HAMMER&#039;s read performance drops significantly but it is able to maintain write performance. UFS&#039;s write performance basically comes to a dead halt.  However, HAMMER&#039;s performance numbers become &#039;unstable&#039; once the system caches are blown out.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/DragonFylBSD/Improving_HAMMER_Performance&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/DragonFylBSD/Improving_HAMMER_Performance#comments</comments>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1280">blogbench</category>
 <category domain="http://www.kerneltrap.org/DragonFlyBSD">DragonFlyBSD</category>
 <category domain="http://www.kerneltrap.org/filesystem">filesystem</category>
 <category domain="http://www.kerneltrap.org/HAMMER">HAMMER</category>
 <category domain="http://www.kerneltrap.org/Matthew_Dillon">Matthew Dillon</category>
 <category domain="http://www.kerneltrap.org/performance">performance</category>
 <category domain="http://www.kerneltrap.org/news/dragonflybsd">DragonFlyBSD</category>
 <pubDate>Thu, 12 Jun 2008 08:17:13 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">16272 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>HAMMER Stabilizing</title>
 <link>http://www.kerneltrap.org/DragonFlyBSD/HAMMER_Stabilizing</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/dragonflybsd&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-FlyBSD_1.gif&quot; alt=&quot;DragonFlyBSD&quot; title=&quot;DragonFlyBSD&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Matthew Dillon sent out a series of &lt;a href=&quot;http://kerneltrap.org/mailarchive/dragonflybsd-kernel/2008/5/12/1798324&quot;&gt;updates&lt;/a&gt; about his developing HAMMER filesystem, noting that he is currently focusing on the reblocking and pruning code, tracking down a number of bugs resulting in B-Tree corruption.  He also noted that previously HAMMER was comprised of three components: B-Tree nodes, records, and data.  In his latest cleanups, he has entirely removed the record structure, &quot;&lt;i&gt;this will seriously improve the performance of directory and inode access.&lt;/i&gt;&quot;  This change did require an on-media &lt;a href=&quot;http://kerneltrap.org/mailarchive/dragonflybsd-kernel/2008/5/12/1801424&quot;&gt;format change&lt;/a&gt;, &quot;&lt;i&gt;I know I have said this before, but there&#039;s a very good chance that no more on-media changes will be made after this point.  The official freeze of the on-media format will not occur until the 2.0 release, however.&lt;/i&gt;&quot;&lt;/p&gt;
&lt;p&gt;Matt &lt;a href=&quot;http://kerneltrap.org/mailarchive/dragonflybsd-kernel/2008/5/11/1790584&quot;&gt;added&lt;/a&gt;, &quot;&lt;i&gt;HAMMER is stable enough now that I am able to run it on my LAN backup box.  I&#039;m using it to test that the snapshots work as expected as well as to test the long term effects of reblocking and pruning.&lt;/i&gt;&quot;  He then cautioned:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Please note that HAMMER is not ready for production use yet, there is still the filesystem-full handling to implement and much more serious testing of the reblocking and pruning code is required, not to mention the crash recovery code.  I expect to find a few more bugs, but I&#039;m really happy with the results so far.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/DragonFlyBSD/HAMMER_Stabilizing&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/DragonFlyBSD/HAMMER_Stabilizing#comments</comments>
 <category domain="http://www.kerneltrap.org/DragonFlyBSD">DragonFlyBSD</category>
 <category domain="http://www.kerneltrap.org/filesystem">filesystem</category>
 <category domain="http://www.kerneltrap.org/HAMMER">HAMMER</category>
 <category domain="http://www.kerneltrap.org/Matthew_Dillon">Matthew Dillon</category>
 <category domain="http://www.kerneltrap.org/performance">performance</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/680">stability</category>
 <category domain="http://www.kerneltrap.org/news/dragonflybsd">DragonFlyBSD</category>
 <pubDate>Wed, 14 May 2008 13:11:59 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">16127 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>HAMMER Crash Recovery</title>
 <link>http://www.kerneltrap.org/DragonFlyBSD/HAMMER_Crash_Recovery</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/dragonflybsd&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-FlyBSD_1.gif&quot; alt=&quot;DragonFlyBSD&quot; title=&quot;DragonFlyBSD&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&quot;&lt;i&gt;HAMMER is going to be a little unstable as I commit the crash recovery code,&lt;/i&gt;&quot; &lt;a href=&quot;http://kerneltrap.org/mailarchive/dragonflybsd-kernel/2008/4/24/1592914&quot;&gt;began DragonFly BSD creator&lt;/a&gt; Matthew Dillon, adding, &quot;&lt;i&gt;I&#039;m about half way through it.&lt;/i&gt;&quot;   He went on to list what&#039;s left for crash recovery to work with HAMMER, his new clustering filesystem, &quot;&lt;i&gt;I have to flush the undo buffers out before the meta-data buffers; then I have to flush the volume header so mount can see the updated undo info; then I have to flush out the meta-data buffers that the UNDO info refers to; and, finally, the mount code must scan the UNDO buffers and perform any required UNDOs.&lt;/i&gt;&quot;  He continued:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;The idea being that if a crash occurs at any point in the above sequence, HAMMER will be able to run the UNDOs to undo any partially written meta-data.  HAMMER would be able to do this at mount-time and it would probably take less then a second, so basically this gives us our instant crash-recovery feature.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Matt went on to add that as an advantage of significantly separating the front end VFS operations from the backend I/O it would  now be possible to fix several stalls in the code, significantly improving HAMMER&#039;s performance.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/DragonFlyBSD/HAMMER_Crash_Recovery&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/DragonFlyBSD/HAMMER_Crash_Recovery#comments</comments>
 <category domain="http://www.kerneltrap.org/DragonFlyBSD">DragonFlyBSD</category>
 <category domain="http://www.kerneltrap.org/filesystem">filesystem</category>
 <category domain="http://www.kerneltrap.org/HAMMER">HAMMER</category>
 <category domain="http://www.kerneltrap.org/Matthew_Dillon">Matthew Dillon</category>
 <category domain="http://www.kerneltrap.org/performance">performance</category>
 <category domain="http://www.kerneltrap.org/news/dragonflybsd">DragonFlyBSD</category>
 <pubDate>Fri, 25 Apr 2008 00:20:38 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">16043 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>Btrfs 0.12, Performance Improvements</title>
 <link>http://www.kerneltrap.org/Linux/Btrfs_0.12_Performance_Improvements</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/linux&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-Linux.gif&quot; alt=&quot;Linux news&quot; title=&quot;Linux news&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&quot;&lt;i&gt;I wasn&#039;t planning on releasing v0.12 yet, and it was supposed to have some initial support for multiple devices.  But, I have made a number of performance fixes and small bug fixes, and I wanted to get them out there before the (destabilizing) work on multiple-devices took over,&lt;/i&gt;&quot; &lt;a href=&quot;http://kerneltrap.org/mailarchive/linux-fsdevel/2008/2/6/744744&quot;&gt;explained Chris Mason&lt;/a&gt; regarding the 0.12 release of his new btrfs filesytem.  Btrfs was first announced in June of 2007, as an alpha-quality filesystem offering checksumming of all files and metadata, extent based file storage, efficient packing of small files, dynamic inode allocation, writable snapshots, object level mirroring and striping, and fast offline filesystem checks, among other features.   The &lt;a href=&quot;http://oss.oracle.com/projects/btrfs/&quot;&gt;project&#039;s website&lt;/a&gt; explains, &quot;&lt;i&gt;Linux has a wealth of filesystems to choose from, but we are facing a number of challenges with scaling to the large storage subsystems that are becoming common in today&#039;s data centers. Filesystems need to scale in their ability to address and manage large storage, and also in their ability to detect, repair and tolerate errors in the data stored on disk.&lt;/i&gt;&quot;  Regarding the latest release, Chris offered:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;So, here&#039;s v0.12.  It comes with a shiny new disk format (sorry), but the gain is dramatically better random writes to existing files.  In testing here, the random write phase of tiobench went from 1MB/s to 30MB/s.  The fix was to change the way back references for file extents were hashed.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/Linux/Btrfs_0.12_Performance_Improvements&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/Linux/Btrfs_0.12_Performance_Improvements#comments</comments>
 <category domain="http://www.kerneltrap.org/Btrfs">Btrfs</category>
 <category domain="http://www.kerneltrap.org/Chris_Mason">Chris Mason</category>
 <category domain="http://www.kerneltrap.org/filesystem">filesystem</category>
 <category domain="http://www.kerneltrap.org/Linux">Linux</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/414">Oracle</category>
 <category domain="http://www.kerneltrap.org/performance">performance</category>
 <category domain="http://www.kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Wed, 06 Feb 2008 20:05:57 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">15432 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>Tracking Historical Performance</title>
 <link>http://www.kerneltrap.org/FreeBSD/Tracking_Historical_Performance</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/freebsd&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kt1.osuosl.org/files/category_pictures/K-FreeBSD_0.gif&quot; alt=&quot;FreeBSD news&quot; title=&quot;FreeBSD news&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&quot;&lt;i&gt;I&#039;d like to send a small update on my progress on the Performance Tracker project,&lt;/i&gt;&quot; &lt;a href=&quot;http://kerneltrap.org/mailarchive/freebsd-current/2008/1/23/593319&quot;&gt;noted Erik Cederstrand&lt;/a&gt; on the FreeBSD -current mailing list.  He continued, &quot;&lt;i&gt;I now have a small setup of a server and a slave chugging along, currently collecting data. I&#039;m following CURRENT and collecting results from super-smack and unixbench.&lt;/i&gt;&quot;  The project performs regular benchmarks of the FreeBSD -current source tree using Unixbench and Super Smack, allowing you to &lt;a href=&quot;http://littlebit.dk:5000/plot/&quot;&gt;chart the results&lt;/a&gt; over time.  Erik highlighted an example of a visible change in performance when the generic kernel moved from the 4BSD scheduler to the ULE scheduler on October 19th, 2007.&lt;/p&gt;
&lt;p&gt;Kris Kennaway responded favorably, then noted, &quot;&lt;i&gt;one suggestion I have is that as more metrics are added it becomes important for an &#039;at a glance; overview of changes so we can monitor for performance improvements and regressions among many workloads.&lt;/i&gt;&quot;  He went on to suggest, &quot;&lt;i&gt;at some point the ability to annotate the data will become important (e.g. &#039;We understand the cause of this, it was r1.123 of foo.c, which was corrected in r1.124.  The developer responsible has been shot.&quot;)&lt;/i&gt;&quot;  Erik agreed with both recommendations, and noted that he would continue to work in that direction.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/FreeBSD/Tracking_Historical_Performance&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/FreeBSD/Tracking_Historical_Performance#comments</comments>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1167">Erik Cederstrand</category>
 <category domain="http://www.kerneltrap.org/FreeBSD">FreeBSD</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1053">Kris Kennaway</category>
 <category domain="http://www.kerneltrap.org/performance">performance</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1169">Super Smack</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1168">Unixbench</category>
 <category domain="http://www.kerneltrap.org/news/freebsd">FreeBSD news</category>
 <pubDate>Wed, 23 Jan 2008 17:03:08 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">15323 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>Speeding Up Fsck With Metaclustering</title>
 <link>http://www.kerneltrap.org/Linux/Speeding_Up_Fsck_With_Metaclustering</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/linux&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-Linux.gif&quot; alt=&quot;Linux news&quot; title=&quot;Linux news&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&quot;&lt;i&gt;This patch speeds up e2fsck on Ext3 significantly using a technique called Metaclustering,&lt;/i&gt;&quot; &lt;a href=&quot;http://kerneltrap.org/mailarchive/linux-kernel/2008/1/13/563282&quot;&gt;stated Abhishek Rai&lt;/a&gt;.  In an &lt;a href=&quot;http://kerneltrap.org/mailarchive/linux-kernel/2007/11/16/419861&quot;&gt;earlier thread&lt;/a&gt; he quantified this claim, &quot;&lt;i&gt;this patch will help reduce full fsck time for ext3. I&#039;ve seen 50-65% reduction in fsck time when using this patch on a near-full file system. With some fsck optimizations, this figure becomes 80%.&lt;/i&gt;&quot;  Most criticism so far has been in regards to formatting issues with the patch preventing it from being easily tested, resolved in the latest postings.  It was also cautioned that the patch affects a significant amount of ext3 code, and thus will require very heavy testing.  Abhishek described how the patch offers its significant gains for e2fsck:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Metaclustering refers to storing indirect blocks in clusters on a per-group basis instead of spreading them out along with the data blocks. This makes e2fsck faster since it can now read and verify all indirect blocks without much seeks. However, done naively it can affect IO performance, so we have built in some optimizations to prevent that from happening. Finally, the benefit in fsck performance is noticeable only when indirect block reads are the bottleneck which is not always the case, but quite frequently is, in the case of moderate to large disks with lot of data on them. However, when indirect block reads are not the bottleneck, e2fsck is generally quite fast anyway to warrant any performance improvements.&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/Linux/Speeding_Up_Fsck_With_Metaclustering&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/Linux/Speeding_Up_Fsck_With_Metaclustering#comments</comments>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1161">Abhishek Rai</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/954">e2fsck</category>
 <category domain="http://www.kerneltrap.org/filesystem">filesystem</category>
 <category domain="http://www.kerneltrap.org/fsck">fsck</category>
 <category domain="http://www.kerneltrap.org/Linux">Linux</category>
 <category domain="http://www.kerneltrap.org/taxonomy/term/1160">metaclustering</category>
 <category domain="http://www.kerneltrap.org/performance">performance</category>
 <category domain="http://www.kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Mon, 14 Jan 2008 13:52:15 +0000</pubDate>
 <dc:creator>Jeremy</dc:creator>
 <guid isPermaLink="false">15224 at http://www.kerneltrap.org</guid>
</item>
<item>
 <title>Large Blocksize Performance</title>
 <link>http://www.kerneltrap.org/Linux/Large_Blocksize_Performance</link>
 <description>&lt;div class=&quot;taxonomy-images&quot;&gt;&lt;a href=&quot;/news/linux&quot; class=&quot;taxonomy-image-links&quot;&gt;&lt;img src=&quot;http://kerneltrap.org/files/category_pictures/K-Linux.gif&quot; alt=&quot;Linux news&quot; title=&quot;Linux news&quot;  width=&quot;75&quot; height=&quot;75&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&quot;&lt;i&gt;I&#039;ve finally got some numbers to go along with the Btrfs variable blocksize feature.  The basic idea is to create a read/write interface to map a range of bytes on the address space, and use it in Btrfs for all metadata operations (file operations have always been extent based),&lt;/i&gt;&quot; &lt;a href=&quot;http://kerneltrap.org/mailarchive/linux-fsdevel/2007/10/15/343969&quot;&gt;explained Chris Mason&lt;/a&gt; in a recent posting to the Linux Filesystem Development mailing list.  He linked to some &lt;a href=&quot;http://oss.oracle.com/~mason/blocksizes/&quot;&gt;benchmark results&lt;/a&gt; and summarized, &quot;&lt;i&gt;the first round of benchmarking shows that larger block sizes do consume more CPU, especially in metadata intensive workloads, but overall read speeds are much better.&lt;/i&gt;&quot;  Chris then noted, &quot;&lt;i&gt;Dave reported that XFS saw much higher write throughput with large blocksizes, but so far I&#039;m seeing the most benefits during reads.&lt;/i&gt;&quot;  David Chinner replied, &quot;&lt;i&gt;the basic conclusion is that different filesystems will benefit in different ways with large block sizes....&lt;/i&gt;&quot; explaining:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;Btrfs linearises writes due to it&#039;s COW behaviour and this is trades off read speed. i.e. we take more seeks to read data so we can keep the write speed high. By using large blocks, you&#039;re reducing the number of seeks needed to find anything, and hence the read speed will increase. Write speed will be pretty much unchanged because btrfs does linear writes no matter the block size.&lt;/p&gt;
&lt;p&gt;&quot;XFS doesn&#039;t linearise writes and optimises it&#039;s layout for a large number of disks and a low number of seeks on reads - the opposite of btrfs. Hence large block sizes reduce the number of writes XFS needs to write a given set of data+metadata and hence write speed increases much more than the read speed (until you get to large tree traversals).&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href=&quot;http://www.kerneltrap.org/Linux/Large_Blocksize_Performance&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.kerneltrap.org/Linux/Large_Blocksize_Performance#comments</comments>
 <category domain="http://www.kerneltrap.org/benchmark">benchmark</category>
 <category domain="http://www.kerneltrap.org/Btrfs">Btrfs</category>
 <category domain="http://www.kerneltrap.org/Chris_Mason">Chris Mason</category>
 <category domain="http://www.kerneltrap.org/David_Chinner">David Chinner</category>
 <category domain="http://www.kerneltrap.org/filesystem">filesystem</category>
 <category domain="http://www.kerneltrap.org/Linux">Linux</category>
 <category domain="http://www.kerneltrap.org/performance">performance</category>
 <category domain="http://www.kerneltrap.org/XFS">XFS</category>
 <category domain="http://www.kerneltrap.org/news/linux">Linux news</category>
 <pubDate>Tue, 16 Oct 2007 10:07:47 +0000</pubDate