public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* high-speed disk I/O is CPU-bound?
@ 2013-05-10 14:04 David Oostdyk
  2013-05-11  0:19 ` Eric Wong
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: David Oostdyk @ 2013-05-10 14:04 UTC (permalink / raw)
  To: linux-kernel

Hello,

I have a few relatively high-end systems with hardware RAIDs which are 
being used for recording systems, and I'm trying to get a better 
understanding of contiguous write performance.

The hardware that I've tested with includes two high-end Intel E5-2600 
and E5-4600 (~3GHz) series systems, as well as a slightly older Xeon 
5600 system.  The JBODs include a 45x3.5" JBOD, a 28x3.5" JBOD (with 
either 7200RPM or 10kRPM SAS drives), and a 24x2.5" JBOD with 10kRPM 
drives.  I've tried LSI controllers (9285-8e, 9266-8i, as well as the 
integrated Intel LSI controllers) as well as Adaptec Series 7 RAID 
controllers (72405 and 71685).

Normally I'll setup the RAIDs as RAID60 and format them as XFS, but the 
exact RAID level, filesystem type, and even RAID hardware don't seem to 
matter very much from my observations (but I'm willing to try any 
suggestions).  As a basic benchmark, I have an application that simply 
writes the same buffer (say, 128MB) to disk repeatedly. Alternatively 
you could use the "dd" utility.  (For these benchmarks, I set 
/proc/sys/vm/dirty_bytes to 512M or lower, since these systems have a 
lot of RAM.)

The basic observations are:

1.  "single-threaded" writes, either a file on the mounted filesystem or 
with a "dd" to the raw RAID device, seem to be limited to 
1200-1400MB/sec.  These numbers vary slightly based on whether 
TurboBoost is affecting the writing process or not.  "top" will show 
this process running at 100% CPU.

2.  With two benchmarks running on the same device, I see aggregate 
write speeds of up to ~2.4GB/sec, which is closer to what I'd expect the 
drives of being able to deliver.  This can either be with two 
applications writing to separate files on the same mounted file system, 
or two separate "dd" applications writing to distinct locations on the 
raw device.  (Increasing the number of writers beyond two does not seem 
to increase aggregate performance; "top" will show both processes 
running at perhaps 80% CPU).

3.  I haven't been able to find any tricks (lio_listio, multiple threads 
writing to distinct file offsets, etc) that seem to deliver higher write 
speeds when writing to a single file.  (This might be xfs-specific, though)

4.  Cheap tricks like making a software RAID0 of two hardware RAID 
devices does not deliver any improved performance for single-threaded 
writes.  (Have not thoroughly tested this configuration fully with 
multiple writers, though.)

5.  Similar hardware on Windows seems to be able to deliver >3GB/sec 
write speeds on a single-threaded writes, and the trick of making a 
software RAID0 of two hardware RAIDs does deliver increased write 
speeds.  (I only point this out to say that I think the hardware is not 
necessarily the bottleneck.)

The question is, is it possible that high-speed I/O to these hardware 
RAIDs could actually be CPU-bound above ~1400MB/sec?

It seems to be the only explanation of the benchmarks that I've been 
seeing, but I don't know where to start looking to really determine the 
bottleneck.  I'm certainly open to suggestions to running different 
configurations or benchmarks.

Thanks for any help/advice!
Dave O.


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-05-17 11:56 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-10 14:04 high-speed disk I/O is CPU-bound? David Oostdyk
2013-05-11  0:19 ` Eric Wong
2013-05-13 14:58   ` David Oostdyk
2013-05-12 16:53 ` Rob Landley
2013-05-13 15:18   ` David Oostdyk
2013-05-16  0:59 ` Dave Chinner
2013-05-16 11:36   ` Stan Hoeppner
2013-05-16 15:35     ` David Oostdyk
2013-05-16 22:56       ` Dave Chinner
2013-05-17 11:56         ` Stan Hoeppner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox