Patriot LX Series 16GB Class 10 PSF16GSDHC10-PC
The 32GB version is already in the table but I can't be sure the boundaries would be the same.
I'm trying to follow this tutorial to optimize the ext4 partition on one of these for use in a Raspberry Pi. I also require a small vfat (about 40MB) partition at the beginning for /boot.
http://blogofterje.wordpress.com/2012/01/14/optimizing-fs-on-sd-card/
If anyone can make sense of the attached numbers could you tell me what boundary to set the partition on and the stripe/stride numbers to use.
Or explain to me how I can get more meaningful numbers with flashbench for inclusion of this card in the table?
thanks,
Gerald
I'm reposting this from the address I actually used to subscribe to the list so responses will show up where I want them <sigh>.
And I'm inlining the numbers rather than attaching.
Gerald
On Fri, 20 Jul 2012 11:45:41 -0500 Gerald Livingston XXXXXXXXX@sysmatrix.XXX wrote:
Patriot LX Series 16GB Class 10 PSF16GSDHC10-PC
The 32GB version is already in the table but I can't be sure the boundaries would be the same.
I'm trying to follow this tutorial to optimize the ext4 partition on one of these for use in a Raspberry Pi. I also require a small vfat (about 40MB) partition at the beginning for /boot.
http://blogofterje.wordpress.com/2012/01/14/optimizing-fs-on-sd-card/
If anyone can make sense of the attached numbers could you tell me what boundary to set the partition on and the stripe/stride numbers to use.
Or explain to me how I can get more meaningful numbers with flashbench for inclusion of this card in the table?
./flashbench -a /dev/sdk --blocksize=1024
align 4294967296 pre 2.62ms on 2.99ms post 2.75ms diff 313µs align 2147483648 pre 2.62ms on 2.99ms post 2.74ms diff 314µs align 1073741824 pre 2.62ms on 2.99ms post 2.74ms diff 312µs align 536870912 pre 2.61ms on 2.99ms post 2.75ms diff 314µs align 268435456 pre 2.62ms on 3ms post 2.74ms diff 314µs align 134217728 pre 2.62ms on 3ms post 2.74ms diff 313µs align 67108864 pre 2.61ms on 2.99ms post 2.74ms diff 315µs align 33554432 pre 2.62ms on 3ms post 2.74ms diff 314µs align 16777216 pre 2.62ms on 2.99ms post 2.75ms diff 312µs align 8388608 pre 2.58ms on 2.99ms post 2.78ms diff 312µs align 4194304 pre 2.58ms on 3ms post 2.78ms diff 313µs align 2097152 pre 2.58ms on 2.64ms post 2.71ms diff -4755ns align 1048576 pre 2.62ms on 2.67ms post 2.71ms diff 8.83µs align 524288 pre 2.62ms on 2.71ms post 2.78ms diff 10.6µs align 262144 pre 2.62ms on 2.69ms post 2.75ms diff 10.1µs align 131072 pre 2.62ms on 2.67ms post 2.74ms diff -7279ns align 65536 pre 2.62ms on 2.67ms post 2.75ms diff -11546n align 32768 pre 2.62ms on 2.69ms post 2.74ms diff 9.53µs align 16384 pre 2.62ms on 2.67ms post 2.74ms diff -7703ns align 8192 pre 2.67ms on 2.73ms post 2.74ms diff 18.4µs align 4096 pre 2.73ms on 2.73ms post 2.67ms diff 25.8µs align 2048 pre 2.8ms on 2.79ms post 2.76ms diff 13.8µs
align 4294967296 pre 2.62ms on 3ms post 2.75ms diff 314µs align 2147483648 pre 2.62ms on 3ms post 2.75ms diff 314µs align 1073741824 pre 2.62ms on 3ms post 2.75ms diff 314µs align 536870912 pre 2.62ms on 3ms post 2.75ms diff 314µs align 268435456 pre 2.62ms on 3ms post 2.75ms diff 313µs align 134217728 pre 2.62ms on 3ms post 2.75ms diff 313µs align 67108864 pre 2.62ms on 3ms post 2.75ms diff 313µs align 33554432 pre 2.62ms on 2.99ms post 2.75ms diff 305µs align 16777216 pre 2.62ms on 3ms post 2.75ms diff 313µs align 8388608 pre 2.58ms on 3ms post 2.78ms diff 314µs align 4194304 pre 2.58ms on 3ms post 2.78ms diff 312µs align 2097152 pre 2.58ms on 2.64ms post 2.71ms diff -5989ns align 1048576 pre 2.62ms on 2.69ms post 2.71ms diff 27.5µs align 524288 pre 2.62ms on 2.71ms post 2.78ms diff 10.1µs align 262144 pre 2.62ms on 2.68ms post 2.75ms diff -7777ns align 131072 pre 2.62ms on 2.68ms post 2.75ms diff -8136ns align 65536 pre 2.62ms on 2.68ms post 2.75ms diff -8481ns align 32768 pre 2.62ms on 2.67ms post 2.75ms diff -10695n align 16384 pre 2.62ms on 2.69ms post 2.75ms diff 9.84µs align 8192 pre 2.67ms on 2.73ms post 2.75ms diff 19.8µs align 4096 pre 2.74ms on 2.73ms post 2.68ms diff 19.5µs align 2048 pre 2.8ms on 2.8ms post 2.78ms diff 8.69µs
====================================================================================
./flashbench -a /dev/sdk --blocksize=1024 --random
align 4294967296 pre 2.62ms on 3ms post 2.75ms diff 313µs align 2147483648 pre 2.62ms on 3ms post 2.75ms diff 312µs align 1073741824 pre 2.62ms on 3ms post 2.75ms diff 314µs align 536870912 pre 2.62ms on 3ms post 2.75ms diff 313µs align 268435456 pre 2.62ms on 2.99ms post 2.75ms diff 309µs align 134217728 pre 2.62ms on 3ms post 2.75ms diff 314µs align 67108864 pre 2.62ms on 3ms post 2.75ms diff 314µs align 33554432 pre 2.62ms on 2.99ms post 2.75ms diff 306µs align 16777216 pre 2.62ms on 3ms post 2.75ms diff 313µs align 8388608 pre 2.58ms on 3ms post 2.78ms diff 315µs align 4194304 pre 2.58ms on 3ms post 2.78ms diff 314µs align 2097152 pre 2.58ms on 2.64ms post 2.71ms diff -7295ns align 1048576 pre 2.62ms on 2.68ms post 2.71ms diff 10.5µs align 524288 pre 2.62ms on 2.71ms post 2.78ms diff 9.88µs align 262144 pre 2.62ms on 2.67ms post 2.74ms diff -9114ns align 131072 pre 2.62ms on 2.68ms post 2.75ms diff -7784ns align 65536 pre 2.62ms on 2.68ms post 2.74ms diff -6354ns align 32768 pre 2.62ms on 2.67ms post 2.75ms diff -7712ns align 16384 pre 2.62ms on 2.68ms post 2.75ms diff -7542ns align 8192 pre 2.67ms on 2.73ms post 2.75ms diff 18.9µs align 4096 pre 2.74ms on 2.73ms post 2.68ms diff 19µs align 2048 pre 2.8ms on 2.8ms post 2.75ms diff 26µs
align 4294967296 pre 2.62ms on 2.99ms post 2.74ms diff 313µs align 2147483648 pre 2.62ms on 3ms post 2.75ms diff 313µs align 1073741824 pre 2.62ms on 3ms post 2.75ms diff 314µs align 536870912 pre 2.62ms on 2.99ms post 2.75ms diff 313µs align 268435456 pre 2.62ms on 3ms post 2.74ms diff 314µs align 134217728 pre 2.62ms on 3ms post 2.75ms diff 312µs align 67108864 pre 2.62ms on 2.99ms post 2.75ms diff 312µs align 33554432 pre 2.62ms on 3ms post 2.75ms diff 314µs align 16777216 pre 2.62ms on 3ms post 2.75ms diff 314µs align 8388608 pre 2.58ms on 3ms post 2.78ms diff 314µs align 4194304 pre 2.58ms on 3ms post 2.78ms diff 313µs align 2097152 pre 2.58ms on 2.64ms post 2.71ms diff -7000ns align 1048576 pre 2.62ms on 2.68ms post 2.71ms diff 10.9µs align 524288 pre 2.62ms on 2.71ms post 2.78ms diff 10.4µs align 262144 pre 2.62ms on 2.67ms post 2.75ms diff -9706ns align 131072 pre 2.62ms on 2.68ms post 2.75ms diff -6863ns align 65536 pre 2.62ms on 2.67ms post 2.75ms diff -7174ns align 32768 pre 2.62ms on 2.68ms post 2.74ms diff -7513ns align 16384 pre 2.62ms on 2.68ms post 2.75ms diff -6558ns align 8192 pre 2.67ms on 2.73ms post 2.75ms diff 18.2µs align 4096 pre 2.75ms on 2.73ms post 2.68ms diff 15.1µs align 2048 pre 2.8ms on 2.8ms post 2.76ms diff 18.2µs
./flashbench -f /dev/sdk
4MiB 2.25M/s 2M/s 4.43M/s 4.48M/s 4.51M/s 4.51M/s 2MiB 1.96M/s 1.96M/s 4.5M/s 4.49M/s 4.5M/s 4.5M/s 1MiB 1.95M/s 1.97M/s 4.52M/s 4.51M/s 4.52M/s 4.51M/s 512KiB 1.96M/s 1.97M/s 4.54M/s 4.54M/s 4.54M/s 4.53M/s 256KiB 1.93M/s 1.93M/s 4.59M/s 4.58M/s 4.59M/s 4.58M/s 128KiB 1.89M/s 1.88M/s 4.4M/s 4.39M/s 4.4M/s 4.39M/s 64KiB 1.9M/s 1.89M/s 4.43M/s 4.42M/s 4.43M/s 4.42M/s 32KiB 1.75M/s 1.75M/s 3.45M/s 3.46M/s 3.45M/s 3.46M/s 16KiB 1.51M/s 1.51M/s 2.63M/s 2.64M/s 2.64M/s 2.64M/s
On Fri, 20 Jul 2012 12:37:06 -0500 Gerald Livingston debuser@sysmatrix.net wrote:
Patriot LX Series 16GB Class 10 PSF16GSDHC10-PC
The 32GB version is already in the table but I can't be sure the boundaries would be the same.
I'm trying to follow this tutorial to optimize the ext4 partition on one of these for use in a Raspberry Pi. I also require a small vfat (about 40MB) partition at the beginning for /boot.
http://blogofterje.wordpress.com/2012/01/14/optimizing-fs-on-sd-card/
./flashbench -a /dev/sdk --blocksize=1024
align 4294967296 pre 2.62ms on 2.99ms post 2.75ms diff 313µs align 2147483648 pre 2.62ms on 2.99ms post 2.74ms diff 314µs align 1073741824 pre 2.62ms on 2.99ms post 2.74ms diff 312µs align 536870912 pre 2.61ms on 2.99ms post 2.75ms diff 314µs align 268435456 pre 2.62ms on 3ms post 2.74ms diff 314µs align 134217728 pre 2.62ms on 3ms post 2.74ms diff 313µs align 67108864 pre 2.61ms on 2.99ms post 2.74ms diff 315µs align 33554432 pre 2.62ms on 3ms post 2.74ms diff 314µs align 16777216 pre 2.62ms on 2.99ms post 2.75ms diff 312µs align 8388608 pre 2.58ms on 2.99ms post 2.78ms diff 312µs align 4194304 pre 2.58ms on 3ms post 2.78ms diff 313µs align 2097152 pre 2.58ms on 2.64ms post 2.71ms diff -4755ns align 1048576 pre 2.62ms on 2.67ms post 2.71ms diff 8.83µs align 524288 pre 2.62ms on 2.71ms post 2.78ms diff 10.6µs align 262144 pre 2.62ms on 2.69ms post 2.75ms diff 10.1µs align 131072 pre 2.62ms on 2.67ms post 2.74ms diff -7279ns align 65536 pre 2.62ms on 2.67ms post 2.75ms diff -11546n align 32768 pre 2.62ms on 2.69ms post 2.74ms diff 9.53µs align 16384 pre 2.62ms on 2.67ms post 2.74ms diff -7703ns align 8192 pre 2.67ms on 2.73ms post 2.74ms diff 18.4µs align 4096 pre 2.73ms on 2.73ms post 2.67ms diff 25.8µs align 2048 pre 2.8ms on 2.79ms post 2.76ms diff 13.8µs
That looks like 4 MiB erase blocks, same as what's already in the table.
If you have a mmc block device (many laptop internal SD card readers are), can you provide output of (replacing mmcblk0 with what ever device number your card gets):
head /sys/block/mmcblk0/device/* 2>/dev/null | grep -v ^$
And can you try some open-au tests? The table says only 1 linear open-au and 0 random. It'd be helpful to confirm that. If yours matches, that's not really an optimal card for use with ext4. Ideally you'd want 5+ open-au in linear and random to get good performance.
Run each of these:
./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=1 ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=2 ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=1 --random ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=2 --random
-Andrew
On Mon, 23 Jul 2012 07:23:59 -0400 Andrew Bradford andrew@bradfordembedded.com wrote:
On Fri, 20 Jul 2012 12:37:06 -0500 Gerald Livingston debuser@sysmatrix.net wrote:
Patriot LX Series 16GB Class 10 PSF16GSDHC10-PC
The 32GB version is already in the table but I can't be sure the boundaries would be the same.
I'm trying to follow this tutorial to optimize the ext4 partition on one of these for use in a Raspberry Pi. I also require a small vfat (about 40MB) partition at the beginning for /boot.
http://blogofterje.wordpress.com/2012/01/14/optimizing-fs-on-sd-card/
./flashbench -a /dev/sdk --blocksize=1024
align 4294967296 pre 2.62ms on 2.99ms post 2.75ms diff 313µs align 2147483648 pre 2.62ms on 2.99ms post 2.74ms diff 314µs align 1073741824 pre 2.62ms on 2.99ms post 2.74ms diff 312µs align 536870912 pre 2.61ms on 2.99ms post 2.75ms diff 314µs align 268435456 pre 2.62ms on 3ms post 2.74ms diff 314µs align 134217728 pre 2.62ms on 3ms post 2.74ms diff 313µs align 67108864 pre 2.61ms on 2.99ms post 2.74ms diff 315µs align 33554432 pre 2.62ms on 3ms post 2.74ms diff 314µs align 16777216 pre 2.62ms on 2.99ms post 2.75ms diff 312µs align 8388608 pre 2.58ms on 2.99ms post 2.78ms diff 312µs align 4194304 pre 2.58ms on 3ms post 2.78ms diff 313µs align 2097152 pre 2.58ms on 2.64ms post 2.71ms diff -4755ns align 1048576 pre 2.62ms on 2.67ms post 2.71ms diff 8.83µs align 524288 pre 2.62ms on 2.71ms post 2.78ms diff 10.6µs align 262144 pre 2.62ms on 2.69ms post 2.75ms diff 10.1µs align 131072 pre 2.62ms on 2.67ms post 2.74ms diff -7279ns align 65536 pre 2.62ms on 2.67ms post 2.75ms diff -11546n align 32768 pre 2.62ms on 2.69ms post 2.74ms diff 9.53µs align 16384 pre 2.62ms on 2.67ms post 2.74ms diff -7703ns align 8192 pre 2.67ms on 2.73ms post 2.74ms diff 18.4µs align 4096 pre 2.73ms on 2.73ms post 2.67ms diff 25.8µs align 2048 pre 2.8ms on 2.79ms post 2.76ms diff 13.8µs
That looks like 4 MiB erase blocks, same as what's already in the table.
If you have a mmc block device (many laptop internal SD card readers are), can you provide output of (replacing mmcblk0 with what ever device number your card gets):
head /sys/block/mmcblk0/device/* 2>/dev/null | grep -v ^$
And can you try some open-au tests? The table says only 1 linear open-au and 0 random. It'd be helpful to confirm that. If yours matches, that's not really an optimal card for use with ext4. Ideally you'd want 5+ open-au in linear and random to get good performance.
Run each of these:
./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=1 ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=2 ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=1 --random ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=2 --random
-Andrew
buffy:/usr/local/src/flashbench# ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=1 4MiB 4.5M/s 2MiB 4.51M/s 1MiB 4.51M/s 512KiB 4.55M/s 256KiB 4.57M/s 128KiB 4.4M/s 64KiB 4.41M/s 32KiB 3.46M/s 16KiB 2.63M/s buffy:/usr/local/src/flashbench# ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=2 4MiB 4.52M/s 2MiB 4.5M/s 1MiB 4.51M/s 512KiB 4.54M/s 256KiB 4.58M/s 128KiB 4.39M/s 64KiB 4.42M/s 32KiB 3.44M/s 16KiB 2.63M/s
buffy:/usr/local/src/flashbench# ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=1 --random 4MiB 4.52M/s 2MiB 3.3M/s 1MiB 1.76M/s 512KiB 1.53M/s 256KiB 1.61M/s 128KiB 1.47M/s 64KiB 1.38M/s 32KiB 1.37M/s 16KiB 1.11M/s buffy:/usr/local/src/flashbench# ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=2 --random 4MiB 3.29M/s 2MiB 3.28M/s 1MiB 1.76M/s 512KiB 1.53M/s 256KiB 1.6M/s 128KiB 1.46M/s 64KiB 1.37M/s 32KiB 1.36M/s 16KiB 1.09M/s
head /sys/block/mmcblk0/device/* 2>/dev/null | grep -v ^$
==> /sys/block/mmcblk0/device/block <== ==> /sys/block/mmcblk0/device/cid <== 2750485344313647307ca14c6d00c200 ==> /sys/block/mmcblk0/device/csd <== 400e00325b59000077477f800a400000 ==> /sys/block/mmcblk0/device/date <== 02/2012 ==> /sys/block/mmcblk0/device/driver <== ==> /sys/block/mmcblk0/device/erase_size <== 512 ==> /sys/block/mmcblk0/device/fwrev <== 0x0 ==> /sys/block/mmcblk0/device/hwrev <== 0x3 ==> /sys/block/mmcblk0/device/manfid <== 0x000027 ==> /sys/block/mmcblk0/device/name <== SD16G ==> /sys/block/mmcblk0/device/oemid <== 0x5048 ==> /sys/block/mmcblk0/device/power <== ==> /sys/block/mmcblk0/device/preferred_erase_size <== 4194304 ==> /sys/block/mmcblk0/device/scr <== 0235800001000000 ==> /sys/block/mmcblk0/device/serial <== 0x7ca14c6d ==> /sys/block/mmcblk0/device/subsystem <== ==> /sys/block/mmcblk0/device/type <== SD ==> /sys/block/mmcblk0/device/uevent <== DRIVER=mmcblk MMC_TYPE=SD MMC_NAME=SD16G MODALIAS=mmc:block
On Mon, 23 Jul 2012 22:29:38 -0500 Gerald Livingston debuser@sysmatrix.net wrote:
On Mon, 23 Jul 2012 07:23:59 -0400 Andrew Bradford andrew@bradfordembedded.com wrote:
On Fri, 20 Jul 2012 12:37:06 -0500 Gerald Livingston debuser@sysmatrix.net wrote:
Patriot LX Series 16GB Class 10 PSF16GSDHC10-PC
buffy:/usr/local/src/flashbench# ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=1 4MiB 4.5M/s 2MiB 4.51M/s 1MiB 4.51M/s 512KiB 4.55M/s 256KiB 4.57M/s 128KiB 4.4M/s 64KiB 4.41M/s 32KiB 3.46M/s 16KiB 2.63M/s buffy:/usr/local/src/flashbench# ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=2 4MiB 4.52M/s 2MiB 4.5M/s 1MiB 4.51M/s 512KiB 4.54M/s 256KiB 4.58M/s 128KiB 4.39M/s 64KiB 4.42M/s 32KiB 3.44M/s 16KiB 2.63M/s
buffy:/usr/local/src/flashbench# ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=1 --random 4MiB 4.52M/s 2MiB 3.3M/s 1MiB 1.76M/s 512KiB 1.53M/s 256KiB 1.61M/s 128KiB 1.47M/s 64KiB 1.38M/s 32KiB 1.37M/s 16KiB 1.11M/s buffy:/usr/local/src/flashbench# ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=2 --random 4MiB 3.29M/s 2MiB 3.28M/s 1MiB 1.76M/s 512KiB 1.53M/s 256KiB 1.6M/s 128KiB 1.46M/s 64KiB 1.37M/s 32KiB 1.36M/s 16KiB 1.09M/s
If the card is really a class 10 card, I'd expect 10M/s or higher with --open-au=1 without --random at the larger sizes. Your card reader might be the cause of the slowness. Can you verify these speeds with another card reader?
The without --random results look good, it's possible that the card can handle more than 2 linear open-au. Can you try increasing --open-au=, one at a time till you see a dramatic decrease in speeds at the smaller block sizes? Usually when you start hitting K/s at the 16KiB or 32KiB size, you're hitting the limits.
The random performance isn't stellar. You could try increasing --open-au= here, too, to see what happens.
head /sys/block/mmcblk0/device/* 2>/dev/null | grep -v ^$
==> /sys/block/mmcblk0/device/block <== ==> /sys/block/mmcblk0/device/cid <== 2750485344313647307ca14c6d00c200 ==> /sys/block/mmcblk0/device/csd <== 400e00325b59000077477f800a400000 ==> /sys/block/mmcblk0/device/date <== 02/2012 ==> /sys/block/mmcblk0/device/driver <== ==> /sys/block/mmcblk0/device/erase_size <== 512 ==> /sys/block/mmcblk0/device/fwrev <== 0x0 ==> /sys/block/mmcblk0/device/hwrev <== 0x3 ==> /sys/block/mmcblk0/device/manfid <== 0x000027 ==> /sys/block/mmcblk0/device/name <== SD16G ==> /sys/block/mmcblk0/device/oemid <== 0x5048 ==> /sys/block/mmcblk0/device/power <== ==> /sys/block/mmcblk0/device/preferred_erase_size <== 4194304 ==> /sys/block/mmcblk0/device/scr <== 0235800001000000 ==> /sys/block/mmcblk0/device/serial <== 0x7ca14c6d ==> /sys/block/mmcblk0/device/subsystem <== ==> /sys/block/mmcblk0/device/type <== SD ==> /sys/block/mmcblk0/device/uevent <== DRIVER=mmcblk MMC_TYPE=SD MMC_NAME=SD16G MODALIAS=mmc:block
This seems to match what's already in the table. You probably have the same controller in your card.
-Andrew
On Mon, 23 Jul 2012 22:29:38 -0500 Gerald Livingston debuser@sysmatrix.net wrote:
==> /sys/block/mmcblk0/device/manfid <== 0x000027 ==> /sys/block/mmcblk0/device/name <== SD16G ==> /sys/block/mmcblk0/device/oemid <== 0x5048
This is a Phison controller, wich usually has the same crappy behavior as the Toshiba ones used in Kingston cards. This one seems to be a little better.
On Tuesday 24 July 2012, Andrew Bradford wrote:
buffy:/usr/local/src/flashbench# ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=1 --random 4MiB 4.52M/s 2MiB 3.3M/s 1MiB 1.76M/s 512KiB 1.53M/s 256KiB 1.61M/s 128KiB 1.47M/s 64KiB 1.38M/s 32KiB 1.37M/s 16KiB 1.11M/s buffy:/usr/local/src/flashbench# ./flashbench /dev/sdk --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=2 --random 4MiB 3.29M/s 2MiB 3.28M/s 1MiB 1.76M/s 512KiB 1.53M/s 256KiB 1.6M/s 128KiB 1.46M/s 64KiB 1.37M/s 32KiB 1.36M/s 16KiB 1.09M/s
If the card is really a class 10 card, I'd expect 10M/s or higher with --open-au=1 without --random at the larger sizes. Your card reader might be the cause of the slowness. Can you verify these speeds with another card reader?
The without --random results look good, it's possible that the card can handle more than 2 linear open-au. Can you try increasing --open-au=, one at a time till you see a dramatic decrease in speeds at the smaller block sizes? Usually when you start hitting K/s at the 16KiB or 32KiB size, you're hitting the limits.
The random performance isn't stellar. You could try increasing --open-au= here, too, to see what happens.
It is much better than expected for a Phison controller though, in the regard that it can do some random I/O. I've seen an 8GB Toshiba class 4 card recently that can do up to 3 erase blocks in random I/O mode, so I wonder if it's the same thing here.
The numbers were looking quite similar:
$ sudo ./flashbench --open-au /dev/mmcblk0 --blocksize=8192 --erasesize=$[4*1024*1024] --open-au-nr=2 --random 4MiB 5.03M/s 2MiB 2.69M/s 1MiB 3.15M/s 512KiB 1.43M/s 256KiB 1.75M/s 128KiB 1.89M/s 64KiB 1.37M/s 32KiB 1.2M/s 16KiB 1.19M/s 8KiB 613K/s
$ sudo ./flashbench --open-au /dev/mmcblk0 --blocksize=8192 --erasesize=$[4*1024*1024] --open-au-nr=3 --random 4MiB 6.27M/s 2MiB 3.31M/s 1MiB 3.14M/s 512KiB 1.43M/s 256KiB 1.76M/s 128KiB 1.89M/s 64KiB 1.37M/s 32KiB 1.2M/s
$ sudo ./flashbench --open-au /dev/mmcblk0 --blocksize=8192 --erasesize=$[4*1024*1024] --open-au-nr=4 --random 4MiB 3.23M/s 2MiB 4.27M/s 1MiB 1.45M/s 512KiB 628K/s ^C
Arnd
flashbench-results@lists.linaro.org