Hello again,
I have another device to test:
# Product info:
http://www.transcend-info.com/Products/CatList.asp?ModNo=274
$ lsusb
Bus 001 Device 006: ID 8564:1000
$ fdisk -l /dev/sdb
Disk /dev/sdb: 32.5 GB, 32451330048 bytes
16 heads, 48 sectors/track, 82528 cylinders, total 63381504 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc3072e18
Device Boot Start End Blocks Id System
/dev/sdb1 * 18160 63381503 31681672 c W95 FAT32 (LBA)
# This is with factory partitioning
$ sudo flashbench -a /dev/sdb --blocksize=1024 --count=100
align 8589934592 pre 528µs on 603µs post 547µs diff
65.8µs
align 4294967296 pre 523µs on 575µs post 522µs diff
52.5µs
align 2147483648 pre 550µs on 635µs post 551µs diff
84.2µs
align 1073741824 pre 573µs on 640µs post 565µs diff
71.2µs
align 536870912 pre 543µs on 608µs post 562µs diff 55.3µs
align 268435456 pre 536µs on 574µs post 530µs diff 40.9µs
align 134217728 pre 558µs on 607µs post 549µs diff 53.1µs
align 67108864 pre 532µs on 577µs post 515µs diff 53.6µs
align 33554432 pre 568µs on 629µs post 561µs diff 64.6µs
align 16777216 pre 536µs on 598µs post 533µs diff 63.4µs
align 8388608 pre 556µs on 619µs post 556µs diff 62.7µs
align 4194304 pre 566µs on 620µs post 539µs diff 67.5µs
align 2097152 pre 565µs on 604µs post 567µs diff 38µs
align 1048576 pre 568µs on 606µs post 567µs diff 38.7µs
align 524288 pre 563µs on 602µs post 562µs diff 39.7µs
align 262144 pre 567µs on 596µs post 551µs diff 37.5µs
align 131072 pre 564µs on 594µs post 553µs diff 35.6µs
align 65536 pre 553µs on 594µs post 563µs diff 35.3µs
align 32768 pre 555µs on 596µs post 563µs diff 36.6µs
align 16384 pre 557µs on 595µs post 566µs diff 33.4µs
align 8192 pre 561µs on 572µs post 553µs diff 15.1µs
align 4096 pre 556µs on 566µs post 565µs diff 6.04µs
align 2048 pre 553µs on 565µs post 568µs diff 4.85µs
# Okay, I think this indicates 4MB erase blocks (and 16kB page size), so let's
try it with open AUs
$ sudo flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --
blocksize=$[4*1024] --open-au-nr=1 --random
4MiB 17.7M/s
2MiB 17.8M/s
1MiB 17.8M/s
512KiB 2.49M/s
256KiB 17.2M/s
128KiB 16M/s
64KiB 13M/s
32KiB 2.19M/s
16KiB 6.37M/s
8KiB 2.54M/s
4KiB 825K/s
$ sudo flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --
blocksize=$[4*1024] --open-au-nr=4 --random
Password:
4MiB 17.5M/s
2MiB 17.3M/s
1MiB 4.29M/s
512KiB 4.31M/s
256KiB 16.5M/s
128KiB 14.4M/s
64KiB 4M/s
32KiB 3.42M/s
16KiB 5.74M/s
8KiB 1.68M/s
4KiB 785K/s
$ sudo flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --
blocksize=$[4*1024] --open-au-nr=6 --random
4MiB 17.5M/s
2MiB 17M/s
1MiB 3.47M/s
512KiB 16.5M/s
256KiB 16.4M/s
128KiB 13M/s
64KiB 3.24M/s
32KiB 8.26M/s
16KiB 5.68M/s
8KiB 1.3M/s
4KiB 786K/s
# Seems OK so far, but the speed randomly drops under different sizes between
tests, sometimes it's a bit shaky like this:
$ sudo flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --
blocksize=$[4*1024] --open-au-nr=6 --random
4MiB 5.8M/s
2MiB 17.3M/s
1MiB 3.47M/s
512KiB 15.9M/s
256KiB 5.52M/s
128KiB 12.8M/s
64KiB 3.24M/s
32KiB 8.19M/s
16KiB 3.43M/s
8KiB 1.52M/s
4KiB 775K/s
# Does this indicate something or it's just device's feature?
# With more open AUs it's slow, also with bigger erase size
$ sudo flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --
blocksize=$[4*1024] --open-au-nr=7 --random
4MiB 2.51M/s
2MiB 1.37M/s
1MiB 711K/s
512KiB 362K/s
^C
# Here it's clear...
$ sudo flashbench /dev/sdb --open-au --erasesize=$[8*1024*1024] --
blocksize=$[4*1024] --open-au-nr=6 --random
8MiB 5.93M/s
4MiB 4.38M/s
2MiB 17.4M/s
1MiB 4.34M/s
512KiB 16M/s
256KiB 4.21M/s
128KiB 13.8M/s
64KiB 3.97M/s
32KiB 8.26M/s
16KiB 2.88M/s
# But here I'm not sure, I think it should me much slower if the erase size is
4MB, becouse it would use two erase blocks. So maybe erase size is bigger than
4MB?
On Monday 03 September 2012, Jaroslav Martínek wrote:
>
> Okay, so I did some further tests:
>
> $ sudo flashbench /dev/sdb --open-au --erasesize=$[16*1024*1024] --
> blocksize=$[16*1024] --open-au-nr=1
> Password:
> 16MiB 5.2M/s
> 8MiB 18M/s
> 4MiB 18M/s
> 2MiB 17.3M/s
> 1MiB 17.4M/s
> 512KiB 16.9M/s
> 256KiB 15.9M/s
> 128KiB 15.1M/s
> 64KiB 13.4M/s
> 32KiB 9.98M/s
> 16KiB 6.46M/s
>
> $ sudo flashbench /dev/sdb --open-au --erasesize=$[16*1024*1024] --
> blocksize=$[16*1024] --open-au-nr=3
> 16MiB 8.13M/s
> 8MiB 17.9M/s
> 4MiB 17.3M/s
> 2MiB 17.5M/s
> 1MiB 17.3M/s
> 512KiB 17M/s
> 256KiB 15.7M/s
> 128KiB 14.7M/s
> 64KiB 13.1M/s
> 32KiB 9.64M/s
> 16KiB 6.13M/s
>
> # So far good...
>
> $ sudo flashbench /dev/sdb --open-au --erasesize=$[16*1024*1024] --
> blocksize=$[16*1024] --open-au-nr=4
> 16MiB 8.16M/s
> 8MiB 3.76M/s
> 4MiB 4.92M/s
> 2MiB 5.25M/s
> 1MiB 4.8M/s
> 512KiB 4.76M/s
> 256KiB 4.67M/s
> 128KiB 4.59M/s
> 64KiB 4.38M/s
> 32KiB 3.9M/s
> 16KiB 3.17M/s
>
> # Here it gets much worse, so I would assume, that thist drive can handle 3
> open AUs if the 16 MB erase size is correct? Also note that on the biggest
> size (16 MB) it's slow, but only for the first run, why's that? If repeated,
> it stays on full speed until I change erase size:
What makes one run slow is the garbage collection that happens because of
the state the drive is already in. Writing in small units can cause this
state.
>
> # Now with 8 MB:
> $ sudo flashbench /dev/sdb --open-au --erasesize=$[8*1024*1024] --
> blocksize=$[8*1024] --open-au-nr=3
> 8MiB 4.64M/s
> 4MiB 18.2M/s
> 2MiB 17.6M/s
> 1MiB 17.7M/s
> 512KiB 16.8M/s
> 256KiB 15.8M/s
> 128KiB 15.2M/s
> 64KiB 13M/s
> 32KiB 9.46M/s
> 16KiB 6.14M/s
> 8KiB 2.51M/s
>
> # Seems to be similar to 16 MB
Well, the question is whether using an 8MB size is also fast with more
than 3 erase blocks. If it can have 6*8MB, that would imply only 3*16MB
in the first run. It may be easier to spot the difference between the
two when you pass '--random', but some drives don't like that at all.
> $ sudo flashbench /dev/sdb --open-au --erasesize=$[12*1024*1024] --
> blocksize=$[6*1024] --open-au-nr=3
> 12MiB 2.88M/s
> 6MiB 3.79M/s
> 3MiB 4.65M/s
> 1.5MiB 6.28M/s
> 768KiB 6.22M/s
> 384KiB 6.16M/s
> 192KiB 6.11M/s
> 96KiB 5.96M/s
> 48KiB 5.32M/s
> 24KiB 3.73M/s
> 12KiB 1.95M/s
> 6KiB 1.05M/s
>
> # 12 MB definetely ruled out
right.
> So, it seems to have 16 MB erase blocks? But then, I'm not able to count any
> reasonable block size from these numbers:
>
> $ sudo fdisk -l /dev/sdb
> Disk /dev/sdb: 31,2 GB, 31 161 974 784 bytes
>
> $ factor 31161974784
> 31161974784: 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 19 43 97
>
> $ echo $[31161974784 / 1024 / 97 / 43]
> 7296
>
> # 7,125 MB? Weird number...
>
> $ echo $[31161974784 / 1024 / 97 / 43 / 19]
> 384
>
> $ echo $[31161974784 / 1024 / 97 / 43 / 19 / 3]
> 128
>
> # Finally some "round" number, but too small for a 32 GB drive
>
> So, I thought I could be able to count block size from whole drive size, like
> there has to be some number of blocks with same size, which together gives the
> full disk size. Or am I still missing something?
> I did those tests on another smaller flash drive and the results was pretty
> obvious with regard of what i figured out from this list and readme. But this
> 32 GB drive is still a bit cryptic to me.
Yes, some drives are like this
> By the way, are you interested of the results from the other USB drives and SD
> cards I have around here?
Yes, if you have them, then please send them to the mailing list.
Arnd
Hi,
I'm trying to figure out parameters of my USB drive with Flashbench, but I'm a
bit confused with the results.
# Product info:
http://www.adata-group.com/index.php?action=product_feature&cid=1&piid=115
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 31.2 GB, 31161974784 bytes
255 heads, 63 sectors/track, 3788 cylinders, total 60863232 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007e2e8
$ sudo flashbench -a /dev/sdb --blocksize=1024
align 8589934592 pre 655µs on 744µs post 644µs diff
95.1µs
align 4294967296 pre 654µs on 774µs post 657µs diff
118µs
align 2147483648 pre 643µs on 804µs post 633µs diff
166µs
align 1073741824 pre 538µs on 562µs post 528µs diff
28.2µs
align 536870912 pre 582µs on 594µs post 562µs diff 21.7µs
align 268435456 pre 576µs on 619µs post 565µs diff 48.3µs
align 134217728 pre 579µs on 637µs post 561µs diff 66.5µs
align 67108864 pre 563µs on 617µs post 567µs diff 51.8µs
align 33554432 pre 537µs on 578µs post 522µs diff 48.2µs
align 16777216 pre 552µs on 563µs post 512µs diff 30.5µs
align 8388608 pre 647µs on 758µs post 646µs diff 111µs
align 4194304 pre 631µs on 726µs post 616µs diff 102µs
align 2097152 pre 629µs on 744µs post 630µs diff 115µs
align 1048576 pre 633µs on 747µs post 623µs diff 119µs
align 524288 pre 641µs on 751µs post 617µs diff 122µs
align 262144 pre 636µs on 742µs post 623µs diff 112µs
align 131072 pre 618µs on 752µs post 643µs diff 121µs
align 65536 pre 604µs on 759µs post 634µs diff 140µs
align 32768 pre 631µs on 741µs post 616µs diff 117µs
align 16384 pre 644µs on 744µs post 624µs diff 111µs
align 8192 pre 636µs on 679µs post 617µs diff 52µs
align 4096 pre 614µs on 641µs post 628µs diff 20.3µs
align 2048 pre 606µs on 629µs post 629µs diff 11.4µs
# Well, from what I've read so far the page size could be 8kB, but what about
the erase block? This drive seems to behave quite differently than the example
in readme or other cards in this list. Any ideas?
Thanks,
Jaroslav Martinek