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