Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964873AbWALEO0 (ORCPT ); Wed, 11 Jan 2006 23:14:26 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S964939AbWALEOZ (ORCPT ); Wed, 11 Jan 2006 23:14:25 -0500 Received: from ms-smtp-03-smtplb.tampabay.rr.com ([65.32.5.133]:4050 "EHLO ms-smtp-03.tampabay.rr.com") by vger.kernel.org with ESMTP id S964872AbWALEOX (ORCPT ); Wed, 11 Jan 2006 23:14:23 -0500 Message-ID: <43C5D797.6090101@cfl.rr.com> Date: Wed, 11 Jan 2006 23:14:15 -0500 From: Phillip Susi User-Agent: Mozilla Thunderbird 1.0.7 (X11/20051010) X-Accept-Language: en-us, en MIME-Version: 1.0 To: linux kernel CC: Kenny Simpson , David Lloyd Subject: Re: Is user-space AIO dead? References: <20060111220231.27064.qmail@web34106.mail.mud.yahoo.com> <43C5D1F3.3060503@cfl.rr.com> In-Reply-To: <43C5D1F3.3060503@cfl.rr.com> Content-Type: multipart/mixed; boundary="------------080901050507010702080004" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 31795 Lines: 460 This is a multi-part message in MIME format. --------------080901050507010702080004 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Heh, would help if I actually attached the file ;) Phillip Susi wrote: > Attached are the results of some simple testing I did in ods format. > These tests involved having dd read the first GB of data from my two > drive sata (fake)raid0 array with varying numbers of concurrent aio > operations ( except for the original, non aio dd of course ). > > I performed these tests with cpufreq disabled and filesystems mounted > with noatime to insure no disturbances. I also set the IO scheduler to > noop, otherwise the default scheduler reordered the IO requests which > was not good for sequential throughput. I used commands like this: > > sync > dd bs=512 count=1 iflag=direct if=/dev/sda of=/dev/null > dd bs=512 count=1 iflag=direct if=/dev/sdb of=/dev/null > time dd bs=128KiB count=32768 iflag=direct if=/dev/mapper/via_hfciifae > of=/dev/null > > The first two commands were to make sure the drive head was on track > zero, otherwise the TCQ on the drives kicked in and reordered some of > the earlier reads as the head seeked to track zero. > > The results show a rather large increase in throughput for block sizes > under 128 KB, with a smaller improvement on larger block size. Likewise, > the cpu time used was significantly lower, especially with block sizes > less than 128 KB. In most cases, the original dd uses 2-3 times more > cpu time than the aio dd. > > The original dd reached near peak throughput ( 93.4 MB/s ) at a block > size of 128 KB. I believe this is due in part to that being the stripe > width of the array, so smaller block sizes did not keep both drives > operating full time. In contrast all of the aio trials reached peak > throughput of 97.x MB/s with a block size of only 32 KB, and at the > smallest block size of 16 KB, the aio(16) trial managed more than 20% > higher throughput than the non aio dd ( 72.1 vs 59.7 MB/s ), and did so > using 1/7th the cpu time. > > To show the difference O_DIRECT makes, at 128 KB block size the original > dd with O_DIRECT managed 93.4 MB/s using 0.906 seconds of CPU time. > Without O_DIRECT, the original dd only sustains 82.6 MB/s and uses a > whopping 2.912 seconds of cpu time, or more than triple the time without > O_DIRECT, and 13x more cpu time than the aio(4) test at that block size! > --------------080901050507010702080004 Content-Type: application/vnd.oasis.opendocument.spreadsheet; name="dd aio results.ods" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="dd aio results.ods" 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 kx+DxU+jyY7HEz27Lto7i1YfrHoDOyTUQywNFl+8echJJKfWyv00cuedm4oajaMHrmfL6KhI D8fSFIezriYYjqMpANGdI04Pb8TRV8FGNFLMAneZRN39wXCsmEX6WGpjBsOxNM2WXUWz5Vh6 FrGFdxi+BDYWI2Ef0ipJrCxLkrE0hVHc1QTD0bCRWCiE4WiaYst7MHwJdAThaK5M/EV3gzAc z5UL25XjabIhPxsR8qGF+OsFfiRwhPPRHDm3rwLjnSozK2AwHO/8iu3za7TEivy5pcmfvwQ4 5sFoF8UotK8C4WhFOPQtHMJwLE3B0toTDEfTNLOqIQy/pLUxHUx3qu3d6/fY5hH3ZGiebpvR 6X9Be/g/UEsHCFPsvZf2BwAAwzYAAFBLAwQUAAgACACRqpgzAAAAAAAAAAAAAAAAEwAAAE9i amVjdCAyL3N0eWxlcy54bWyNlMFygyAQQO/9Coe7EmsPDRPNrV/QfgBBNEyRdQDF/n0VGwfb NMNReM9ddllO56mTyci1EaBKlGcHlHDFoBaqLdHH+1v6is7V0wmaRjBOamBDx5VNjf2S3CSz rAxZN0s0aEWAGmGIoh03xDICPVc3iYQ08aHWFf+zWN3DoW35ZGPlhd259BIf2cOhXWvqYuWF nWsa6g3EypORaQMpg66nVvzKYpJCfZboam1PMHbOZa7IQLc4Px6P2O9uCbON6wctPVUzzCVf ghmcZzm+sWroLlxHH49a+qczZmyjuzq2/xyPXamO7q+H9y0q6vgWFfUufaZFHx16pUMfALZy L8J68X3Rnw+HF7x+B7R7iDstLNcBzh7ijEq2VQG6exdk5nI8Eykfl/aj5Gc0d89BdZv9deRx dcL3H4PqG1BLBwiWgrQzOgEAAEwEAABQSwMEFAAAAAAAkaqYM+RB/+fBAwAAwQMAAAgAAABt ZXRhLnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxvZmZpY2U6 ZG9jdW1lbnQtbWV0YSB4bWxuczpvZmZpY2U9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9j dW1lbnQ6eG1sbnM6b2ZmaWNlOjEuMCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3Jn LzE5OTkveGxpbmsiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4x LyIgeG1sbnM6bWV0YT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpt ZXRhOjEuMCIgeG1sbnM6b29vPSJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNC9vZmZpY2Ui IG9mZmljZTp2ZXJzaW9uPSIxLjAiPjxvZmZpY2U6bWV0YT48bWV0YTpnZW5lcmF0b3I+T3Bl bk9mZmljZS5vcmcvMi4wJExpbnV4IE9wZW5PZmZpY2Uub3JnX3Byb2plY3QvNjgwJEJ1aWxk LTg4MjU8L21ldGE6Z2VuZXJhdG9yPjxtZXRhOmNyZWF0aW9uLWRhdGU+MjAwNS0xMS0yMlQy MzozNTo0MjwvbWV0YTpjcmVhdGlvbi1kYXRlPjxkYzpkYXRlPjIwMDUtMTItMjRUMTY6MjA6 MzQ8L2RjOmRhdGU+PGRjOmxhbmd1YWdlPmVuLVVTPC9kYzpsYW5ndWFnZT48bWV0YTplZGl0 aW5nLWN5Y2xlcz41PC9tZXRhOmVkaXRpbmctY3ljbGVzPjxtZXRhOmVkaXRpbmctZHVyYXRp b24+UFQySDFNNDJTPC9tZXRhOmVkaXRpbmctZHVyYXRpb24+PG1ldGE6dXNlci1kZWZpbmVk IG1ldGE6bmFtZT0iSW5mbyAxIi8+PG1ldGE6dXNlci1kZWZpbmVkIG1ldGE6bmFtZT0iSW5m byAyIi8+PG1ldGE6dXNlci1kZWZpbmVkIG1ldGE6bmFtZT0iSW5mbyAzIi8+PG1ldGE6dXNl ci1kZWZpbmVkIG1ldGE6bmFtZT0iSW5mbyA0Ii8+PG1ldGE6ZG9jdW1lbnQtc3RhdGlzdGlj IG1ldGE6dGFibGUtY291bnQ9IjMiIG1ldGE6Y2VsbC1jb3VudD0iMTQwIiBtZXRhOm9iamVj dC1jb3VudD0iMiIvPjwvb2ZmaWNlOm1ldGE+PC9vZmZpY2U6ZG9jdW1lbnQtbWV0YT5QSwME FAAIAAgAkaqYMwAAAAAAAAAAAAAAABgAAABUaHVtYm5haWxzL3RodW1ibmFpbC5wbmedl3c0 XF33x7UQRokQvSZEmyGihBm9t4wWLYjRCSJ670T00XvvDNEJgkT03gajJmoYJAhhlHfyvM/7 /2/97lr33nXv+e6zzzn37L0/N0oLqkxGwkCCg4NDpqqioIO9e2LPgruE2OtiT8YjHByqWlUF 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 LnhtbFBLBQYAAAAADgAOAHYDAACqTwAAAAA= --------------080901050507010702080004-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/