Hi Arnd
thank you for your help!
On 08/07/11 16:55, Arnd Bergmann wrote:
but there is a problem using three or more. However, the performance is still basically constant, so the card is doing something smart. It's probably using the new Sandisk trick with SLC and MLC areas. On the one hand, this is
ah, so the journaling of ext3 *should* not be a problem, right?
good news, because the card doesn't behave that badly, on the other hand it's not easy to measure and the baseline of 2 MB/s is rather slow.
I see. So this means aligning to 4MB is a good thing? Or does this simply mean i can write 2 blocks at once?
It's still not all that bad. If you want to try other things, first of all try the same with the class 10 card. Also, add the '--random' flag to see if it changes anything. Any measurements with '--random' are more likely to be useful than those without, but it may be that the class 10 card won't like that argument and becomes extremely slow.
our class10 is a transcend card, so making tests with this card is like comparing apples with pears i think. maybe the quality of that card is also not the best. we try to get a class6 and class10 sandisk
but what --random does, isn't that more likely what a normal system does on the SD card when i have /var and swap on the SD card? so this means it is quite normal that it will be very slow, is it?
same test with --random:
./flashbench -O --open-au-nr=2 --random /dev/mmcblk0p3 4MiB 839K/s 2MiB 3.26M/s 1MiB 8.7M/s 512KiB 1.48M/s 256KiB 731K/s 128KiB 952K/s 64KiB 1.18M/s 32KiB 594K/s 16KiB 356K/s
i guess i should align to 1MB then?
./flashbench -O --open-au-nr=3 --random /dev/mmcblk0p3 4MiB 2.84M/s 2MiB 2.46M/s 1MiB 5.23M/s 512KiB 1.33M/s 256KiB 697K/s 128KiB 1.08M/s 64KiB 904K/s 32KiB 534K/s 16KiB 360K/s
./flashbench -O --open-au-nr=5 --random /dev/mmcblk0p3 4MiB 2.87M/s 2MiB 2.56M/s 1MiB 1.71M/s 512KiB 1.78M/s 256KiB 920K/s 128KiB 471K/s 64KiB 320K/s 32KiB 276K/s 16KiB 215K/s
You can get measurements for smaller block sizes in addition to the values down to 16KB by passing --blocksize=512. This may get rather slow towards the end, but is very relevant because the block size used by ext3 is only 4KiB.
ah great. ok, did i understand right that i do this tests for figuring out the actual values of erase block size and blocksize? when i know those values, what do i do with them? align partitions to erase block size and format filesystem with SD blocksize (if possible)?
i guess ideal for the SD card performance would be to format with 4MiB blocksize, but that's impossible with ext3 and bad for me because i waste to much space with small files, right?
is the copy-on-write feature of btrfs maybe helping?
what about swap .. does it make sense creating a swap with 4MiB pagesize?
last question, hope i do not stress you to much: during bonnie tests we had a high cpu load (90%),.. and during normal operation of the system iowait is going up really high (90%) which freezes the system then
is that normal? shouldn't most calculation being done by the microcontroller on the SD chip?
thank you very much in advance
peter