Re: USB I/O performance

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Aug 29, 2009 at 11:52:48PM -0430, Patrick O'Callaghan wrote:
> Just a quick note to call people's attention to
> http://marc-abramowitz.com/archives/2007/02/17/getting-good-performance-out-of-usb-hard-drives-in-linux/. This is a couple of years old but it worked like a charm for me.
> 
> Briefly, there's a kernel parameter
> called /sys/block/sd[a,b,...]/device/max_sectors (for USB drives sda,
> sdb etc.). This specifies the maximum size of a disk I/O operation for
> USB storage devices in units of 512 bytes, the default value being 240,
> i.e. 120KB (see http://www.linux-usb.org/FAQ.html#i5). The max_sectors
> value can be changed doing "echo N > ..." as root, and can have a
> dramatic effect on write performance for USB devices such as pendrives.
> 
> I tested this by writing over 2GB to a fresh VFAT filesystem on a 4GB
> Kingston Data Traveller pendrive plugged into a USB2 port with the EHCI
> driver (as indicated by dmesg). With the default setting, this took
> nearly 90 minutes including a final sync to flush the buffers. Using a
> max_sectors value of 1024 -- the highest the system would accept -- the
> time was reduced to under 16 minutes, a better than 5 times speedup.
> YMMV of course, as different brands of pendrive can have very different
> performance characteristics.
> 
> Note that the value resets to the default when you unplug the drive, so
> you need to set it manually each time. I don't know if there's a way to
> do this automatically, or change the default value permanently.
> 
> Sorry of everyone already knew this, but I found it so useful I just had
> to share it :-)

No, I didn't know it!

I was just playing with it on F12 on my eeepc 901, using a 1 gig Memorex stick.
On that hardware I cannot use any value > 1024, or I get:

	bash: echo: write error: Invalid argument.

but copying a 640 meg file takes abouty 4:20 (4 mins, 20 sec) with the
default setting of 240 and about 40 seconds with it set to 1024. Nice
speedup.

With an 8 gig Sandisk Cruzer I get the same error when trying to use a
value > 1024, so it's not caused by the USB stick, but by some limitation
in the system (despite what it says in the USB FAQ referenced above about
there being no kernel limit.)

-- 
---- Fred Smith -- fredex@xxxxxxxxxxxxxxxxxxxxxx -----------------------------
                      The eyes of the Lord are everywhere, 
                    keeping watch on the wicked and the good.
----------------------------- Proverbs 15:3 (niv) -----------------------------

-- 
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines
[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [Fedora Magazine]     [Fedora News]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Maintainers]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [Fedora Fonts]     [ATA RAID]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [SSH]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Tux]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Asterisk PBX]     [Fedora Sparc]     [Fedora Universal Network Connector]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux