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-o....
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(a)fcshome.stoneham.ma.us -----------------------------
The eyes of the Lord are everywhere,
keeping watch on the wicked and the good.
----------------------------- Proverbs 15:3 (niv) -----------------------------