Hello,
I was testing my Kingston DataTraveler USB drive (0930:6544), for fun,
but I'm unable to interpret the following results:
$ sudo ./flashbench -a -c 64 -b 1024 /dev/sdb
align 2147483648 pre 851µs on 845µs post 852µs diff -5969ns
align 1073741824 pre 877µs on 872µs post 884µs diff -8436ns
align 536870912 pre 847µs on 833µs post 851µs diff -15795n
align 268435456 pre 851µs on 847µs post 842µs diff 787ns
align 134217728 pre 837µs on 831µs post 844µs diff -9395ns
align 67108864 pre 859µs on 823µs post 846µs diff -29289n
align 33554432 pre 841µs on 835µs post 856µs diff -13367n
align 16777216 pre 840µs on 831µs post 845µs diff -11363n
align 8388608 pre 846µs on 850µs post 850µs diff 1.9µs
align 4194304 pre 853µs on 839µs post 852µs diff -13892n
align 2097152 pre 843µs on 823µs post 849µs diff -23535n
align 1048576 pre 851µs on 852µs post 858µs diff -2358ns
align 524288 pre 855µs on 846µs post 857µs diff -9568ns
align 262144 pre 856µs on 842µs post 853µs diff -12572n
align 131072 pre 857µs on 853µs post 860µs diff -5574ns
align 65536 pre 855µs on 834µs post 842µs diff -14547n
align 32768 pre 857µs on 850µs post 851µs diff -3882ns
align 16384 pre 848µs on 846µs post 853µs diff -4037ns
align 8192 pre 866µs on 866µs post 871µs diff -2467ns
align 4096 pre 867µs on 859µs post 865µs diff -7232ns
align 2048 pre 866µs on 866µs post 868µs diff -901ns
The drive is quite old and it has been containing an ext2 filesystem
since the beginning. I only use it to mirror a directory, so it's only
plugged from time to time. But it has been almost full for a while.
Maybe the microcontroller is doing something weird, I don't really know.
Best regards.
--
Isaac Jurado
"The noblest pleasure is the joy of understanding."
Leonardo da Vinci
Looks like 4MB erase block, maybe a 128kB block and 32kb page. 7au, several
runs done as there was some variation in numbers, these are typical runs.
CompactFlash ATA device
Model Number: SanDisk SDCFH-004G
Serial Number: AAZ091113183311
Firmware Revision: HDX 7.07
pictsidhe@Miner-D:~/flashbench$ sudo ./flashbench -a /dev/sdb
--blocksize=1024
align 1073741824 pre 763µs on 980µs post 766µs diff 215µs
align 536870912 pre 884µs on 1.18ms post 888µs diff 290µs
align 268435456 pre 843µs on 1.09ms post 840µs diff 248µs
align 134217728 pre 837µs on 1.03ms post 782µs diff 223µs
align 67108864 pre 870µs on 1.12ms post 835µs diff 269µs
align 33554432 pre 810µs on 1ms post 752µs diff 222µs
align 16777216 pre 864µs on 1.15ms post 862µs diff 287µs
align 8388608 pre 802µs on 1.05ms post 807µs diff 247µs
align 4194304 pre 773µs on 1.03ms post 808µs diff 240µs
align 2097152 pre 786µs on 886µs post 785µs diff 100µs
align 1048576 pre 782µs on 909µs post 778µs diff 129µs
align 524288 pre 781µs on 885µs post 771µs diff 109µs
align 262144 pre 779µs on 886µs post 778µs diff 107µs
align 131072 pre 775µs on 882µs post 749µs diff 121µs
align 65536 pre 779µs on 882µs post 779µs diff 103µs
align 32768 pre 773µs on 895µs post 777µs diff 120µs
align 16384 pre 779µs on 848µs post 778µs diff 69.5µs
align 8192 pre 779µs on 843µs post 779µs diff 63.5µs
align 4096 pre 775µs on 859µs post 780µs diff 81µs
align 2048 pre 774µs on 843µs post 776µs diff 68.1µs
pictsidhe@Miner-D:~/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024
* 1024] --blocksize=$[256 * 1024] /dev/sdb --open-au-nr=7
4MiB 30.1M/s
2MiB 31.3M/s
1MiB 27.1M/s
512KiB 30M/s
256KiB 29.1M/s
pictsidhe@Miner-D:~/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024
* 1024] --blocksize=$[256 * 1024] /dev/sdb --open-au-nr=8
4MiB 31M/s
2MiB 12M/s
1MiB 3.48M/s
512KiB 1.51M/s
256KiB 703K/s
dd tests, 256MB file size:
Block: 2K 4K 8K 16K 32K 64K 128K 256K 512K 1M
Write: 1.5 MB/s 2.7 MB/s 4.9 MB/s 12.2 MB/s 18.0 MB/s 22.4 MB/s 26.0 MB/s
26.3 MB/s 27.5 MB/s 26.5 MB/s
Read: 3.7 MB/s 6.7 MB/s 11.0 MB/s 16.3 MB/s 21.5 MB/s 25.3 MB/s 27.8 MB/s
28.1 MB/s 28.2
MB/s 28.3 MB/s
--
They that can give up essential liberty to obtain a little temporary safety
deserve neither liberty nor safety. ~Benjamin Franklin
Hello!
These are the results from a SanDisk SDHC card 8 GB class 4 (7560 MiB), using flashbench 62-1 (Linux Mint 15 / Ubuntu 13.04 repository, and kernel 3.11.0). The SD Card is raw, without formatation. There are informations about the card controller from my laptop too.
I have some questions about flashbench tool. Are there any development in this tool yet? Am I using the correct version? What is the -a parameter, it's not in documentation (it's not in the --help parameter too).
lsusb -v
Bus 001 Device 008: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x058f Alcor Micro Corp.
idProduct 0x6366 Multi Flash Reader
bcdDevice 1.00
iManufacturer 1 Generic
iProduct 2 Mass Storage
Device
iSerial 3 058F63666433
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80
Bulk-Only
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch
Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2
IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
head /sys/block/sdb/device/* 2>/dev/null | grep -v ^$
==> /sys/block/sdb/device/block <==
==> /sys/block/sdb/device/bsg <==
==> /sys/block/sdb/device/device_blocked <==
0
==> /sys/block/sdb/device/dh_state <==
detached
==> /sys/block/sdb/device/driver <==
==> /sys/block/sdb/device/eh_timeout <==
10
==> /sys/block/sdb/device/evt_media_change <==
0
==> /sys/block/sdb/device/generic <==
==> /sys/block/sdb/device/iocounterbits <==
32
==> /sys/block/sdb/device/iodone_cnt <==
0x10d82
==> /sys/block/sdb/device/ioerr_cnt <==
0x2
==> /sys/block/sdb/device/iorequest_cnt <==
0x10d82
==> /sys/block/sdb/device/max_sectors <==
240
==> /sys/block/sdb/device/modalias <==
scsi:t-0x00
==> /sys/block/sdb/device/model <==
Card Reader
==> /sys/block/sdb/device/power
<==
==> /sys/block/sdb/device/queue_depth <==
1
==> /sys/block/sdb/device/queue_type <==
none
==> /sys/block/sdb/device/rev <==
1.00
==> /sys/block/sdb/device/scsi_device <==
==> /sys/block/sdb/device/scsi_disk <==
==> /sys/block/sdb/device/scsi_generic <==
==> /sys/block/sdb/device/scsi_level <==
0
==> /sys/block/sdb/device/state <==
running
==> /sys/block/sdb/device/subsystem <==
==> /sys/block/sdb/device/timeout <==
30
==> /sys/block/sdb/device/type <==
0
==> /sys/block/sdb/device/uevent <==
DEVTYPE=scsi_device
DRIVER=sd
MODALIAS=scsi:t-0x00
==> /sys/block/sdb/device/vendor <==
Multiple
flashbench -a /dev/sdb --blocksize=1024 --count=100
align 2147483648 pre 1.31ms on 1.73ms post 1.25ms diff 456µs
align 1073741824 pre 1.3ms on 1.76ms post 1.24ms diff 485µs
align 536870912 pre 1.28ms on 1.79ms post 1.32ms diff 491µs
align
268435456 pre 1.24ms on 1.68ms post 1.23ms diff 444µs
align 134217728 pre 1.3ms on 1.82ms post 1.3ms diff 518µs
align 67108864 pre 1.3ms on 1.77ms post 1.25ms diff 488µs
align 33554432 pre 1.02ms on 1.34ms post 1.01ms diff 327µs
align 16777216 pre 1.01ms on 1.35ms post 989µs diff 348µs
align 8388608 pre 974µs on 1.35ms post 1.01ms diff 361µs
align 4194304 pre 1.25ms on 1.71ms post 1.03ms diff 568µs
align 2097152
pre 1.29ms on 1.44ms post 1.26ms diff 160µs
align 1048576 pre 1.25ms on 1.44ms post 1.3ms diff 162µs
align 524288 pre 1.31ms on 1.44ms post 1.26ms diff 153µs
align 262144 pre 1.25ms on 1.42ms post 1.29ms diff 155µs
align 131072 pre 1.28ms on 1.43ms post 1.26ms diff 167µs
align 65536 pre 1.25ms on 1.43ms post 1.29ms diff 160µs
align 32768 pre 1.28ms on 1.43ms post 1.26ms diff 165µs
align 16384 pre 1.24ms on
1.43ms post 1.29ms diff 168µs
align 8192 pre 1.25ms on 1.31ms post 1.25ms diff 56.5µs
align 4096 pre 1.19ms on 1.34ms post 1.25ms diff 118µs
align 2048 pre 1.2ms on 1.25ms post 1.2ms diff 51.8µs
# Maybe this card has 4 MiB of Erased Block and 16 kiB of Page?
flashbench -a /dev/sdb --blocksize=1024 --count=100
align 2147483648 pre 1.31ms on 1.73ms post 1.25ms diff 450µs
align 1073741824 pre 1.3ms on 1.76ms post 1.24ms diff 491µs
align 536870912 pre 1.28ms on 1.79ms post 1.32ms diff 484µs
align 268435456 pre
1.25ms on 1.68ms post 1.23ms diff 435µs
align 134217728 pre 1.29ms on 1.82ms post 1.3ms diff 525µs
align 67108864 pre 1.3ms on 1.77ms post 1.24ms diff 495µs
align 33554432 pre 1.02ms on 1.35ms post 996µs diff 346µs
align 16777216 pre 1.02ms on 1.35ms post 995µs diff 341µs
align 8388608 pre 974µs on 1.35ms post 994µs diff 368µs
align 4194304 pre 1.27ms on 1.71ms post 1.03ms diff 562µs
align 2097152 pre 1.31ms
on 1.44ms post 1.26ms diff 161µs
align 1048576 pre 1.25ms on 1.44ms post 1.3ms diff 164µs
align 524288 pre 1.3ms on 1.43ms post 1.26ms diff 156µs
align 262144 pre 1.25ms on 1.43ms post 1.29ms diff 162µs
align 131072 pre 1.3ms on 1.44ms post 1.26ms diff 157µs
align 65536 pre 1.25ms on 1.42ms post 1.27ms diff 159µs
align 32768 pre 1.25ms on 1.43ms post 1.24ms diff 182µs
align 16384 pre 1.24ms on 1.43ms post
1.27ms diff 178µs
align 8192 pre 1.25ms on 1.31ms post 1.24ms diff 67.7µs
align 4096 pre 1.19ms on 1.34ms post 1.24ms diff 126µs
align 2048 pre 1.19ms on 1.25ms post 1.18ms diff 69.6µs
flashbench -a /dev/sdb --blocksize=2048 --count=100
align 2147483648 pre 1.29ms on 1.72ms post 1.25ms diff 448µs
align 1073741824 pre 1.28ms on 1.7ms post 1.22ms diff 449µs
align 536870912 pre 1.25ms on 1.74ms post 1.29ms diff 473µs
align 268435456 pre 1.25ms on 1.66ms post 1.22ms diff 421µs
align 134217728 pre 1.28ms on 1.79ms post 1.29ms diff 501µs
align 67108864 pre 1.3ms on 1.74ms post 1.26ms diff 466µs
align 33554432 pre 1.12ms on 1.51ms post 1.1ms diff 401µs
align 16777216 pre 1.09ms on 1.45ms post 949µs diff 427µs
align 8388608 pre 1.1ms on 1.46ms post 949µs diff 438µs
align 4194304 pre 1.15ms on 1.6ms post 1.07ms diff 487µs
align 2097152 pre 1.16ms on 1.28ms post 1.15ms diff 126µs
align 1048576 pre 1.15ms on 1.28ms post 1.16ms diff 126µs
align 524288 pre 1.16ms on 1.28ms post 1.15ms diff 123µs
align 262144 pre 1.15ms on 1.28ms post 1.16ms diff 123µs
align 131072 pre 1.16ms on 1.28ms post 1.15ms diff 130µs
align 65536 pre 1.15ms on 1.28ms post 1.16ms diff 122µs
align 32768 pre 1.16ms on 1.28ms post 1.15ms diff 123µs
align 16384 pre 1.15ms on 1.28ms post 1.16ms diff 122µs
align 8192 pre 1.13ms on 1.17ms post 1.13ms diff 39.8µs
align 4096 pre 1.13ms on 1.17ms post 1.13ms diff 41.5µs
flashbench -a /dev/sdb --blocksize=2048 --count=100
align 2147483648 pre 1.69ms on 2.11ms post 1.58ms diff 479µs
align 1073741824 pre 1.67ms on 2.1ms post 1.63ms diff 452µs
align 536870912 pre 1.65ms on 2.15ms post 1.68ms diff 486µs
align 268435456 pre 1.59ms on 2.01ms post 1.49ms diff 469µs
align 134217728 pre 1.69ms on 2.19ms post 1.7ms diff 499µs
align 67108864 pre 1.68ms on 2.15ms post 1.59ms diff 517µs
align 33554432 pre 1.39ms on 1.78ms post 1.38ms diff 394µs
align 16777216 pre 1.27ms on 1.68ms post 990µs diff 551µs
align 8388608 pre 1.26ms on 1.68ms post 985µs diff 555µs
align 4194304 pre 1.38ms on 1.88ms post 1.29ms diff 543µs
align 2097152 pre 1.44ms on 1.6ms post 1.44ms diff 155µs
align 1048576 pre 1.44ms on 1.58ms post 1.48ms diff 122µs
align 524288 pre 1.48ms on 1.6ms post 1.43ms diff 140µs
align 262144 pre 1.44ms on 1.6ms post 1.48ms diff 143µs
align 131072 pre 1.48ms on 1.59ms post 1.43ms diff 140µs
align 65536 pre 1.43ms on 1.56ms post 1.48ms diff 110µs
align 32768 pre 1.47ms on 1.58ms post 1.43ms diff 129µs
align 16384 pre 1.43ms on 1.59ms post 1.47ms diff 137µs
align 8192 pre 1.41ms on 1.48ms post 1.41ms diff 73.5µs
align 4096 pre 1.41ms on 1.48ms post 1.41ms diff 67.4µs
flashbench -f /dev/sdb
4MiB 5.02M/s 8.23M/s 2.39M/s 5.04M/s 10.4M/s 2.08M/s
2MiB 4.64M/s 17.1M/s 4.91M/s 4.41M/s 5.01M/s 4.51M/s
1MiB 4.98M/s 13.9M/s 4.69M/s 4.98M/s 4.72M/s 1.75M/s
512KiB 4.74M/s 16.9M/s 4.98M/s 4.74M/s 4.78M/s 15M/s
256KiB 4.99M/s 13.4M/s 4.93M/s 4.71M/s 1.99M/s 4.97M/s
128KiB 4.74M/s 14.1M/s 4.53M/s 4.96M/s 4.38M/s 4.99M/s
64KiB 4.73M/s 13.3M/s 4.92M/s 4.76M/s 2.03M/s 4.9M/s
32KiB 4.41M/s 15.1M/s 4.9M/s 4.42M/s 4.96M/s 4.68M/s
16KiB 4.58M/s 11M/s 4.78M/s 4M/s 4.83M/s 3.39M/s
flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=1
4MiB 14.9M/s
2MiB 17.9M/s
1MiB 18.5M/s
512KiB 18.1M/s
256KiB 18.1M/s
128KiB 17.6M/s
64KiB 17.3M/s
32KiB 16M/s
16KiB 13.2M/s
flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=2
4MiB 16.4M/s
2MiB 17.8M/s
1MiB 17.8M/s
512KiB 17.1M/s
256KiB 16.3M/s
128KiB 15.1M/s
64KiB 14M/s
32KiB 11.3M/s
16KiB 8.04M/s
flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=3
4MiB 17.4M/s
2MiB 18.2M/s
1MiB 17.7M/s
512KiB 17.1M/s
256KiB
16M/s
128KiB 15.3M/s
64KiB 14M/s
32KiB 11.2M/s
16KiB 7.92M/s
flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=4
4MiB 10.9M/s
2MiB 5.98M/s
1MiB 9.38M/s
512KiB 7.03M/s
256KiB 6.67M/s
128KiB 6.8M/s
64KiB 8.36M/s
32KiB 7.11M/s
16KiB 5.92M/s
flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --open-au-nr=5
4MiB 6.5M/s
2MiB 4.62M/s
1MiB 3.2M/s
512KiB 3.41M/s
256KiB 3.25M/s
128KiB 2.83M/s
64KiB 4.41M/s
32KiB 6.06M/s
16KiB 3.52M/s
With --random parameter:
flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --random --open-au-nr=1
4MiB 15.8M/s
2MiB 17.8M/s
1MiB 18M/s
512KiB 15.7M/s
256KiB 8.44M/s
128KiB 3.01M/s
64KiB 1.45M/s
32KiB 719K/s
16KiB 343K/s
flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --random --open-au-nr=2
4MiB 13.9M/s
2MiB 17.8M/s
1MiB 17.8M/s
512KiB 15.5M/s
256KiB 8.48M/s
128KiB 2.99M/s
64KiB 1.45M/s
32KiB 718K/s
16KiB 342K/s
flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --random --open-au-nr=3
4MiB 7.17M/s
2MiB 17.9M/s
1MiB 17.1M/s
512KiB 15.5M/s
256KiB 8.36M/s
128KiB 3.01M/s
64KiB 1.45M/s
32KiB 718K/s
16KiB 343K/s
flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --random --open-au-nr=4
4MiB 8.54M/s
2MiB 5.46M/s
1MiB 9.28M/s
512KiB 4.51M/s
256KiB 3.65M/s
128KiB 1.43M/s
64KiB 745K/s
32KiB 441K/s
16KiB 254K/s
flashbench /dev/sdb --open-au --erasesize=$[4*1024*1024] --blocksize=$[16*1024] --random --open-au-nr=5
4MiB 5.46M/s
2MiB 5.01M/s
1MiB 4.92M/s
512KiB 2.16M/s
256KiB 1.32M/s
128KiB 799K/s
64KiB 432K/s
32KiB 246K/s
16KiB 177K/s
I think that the Erased Block has 4 MiB and each Page has 16 kiB, but the open-au it's only 1 or maybe 2, I don't know. Is that correct?
I want use F2FS in this card, but I don't know if this card is good for this, and I don't know too how to alignment correctly with F2FS, using mkfs.f2fs.
Sérgio Benjamim