please choosego to mobile | Continue to access the PC version
View: 17666|Reply: 17

USB-to-SATA performance on OPi Plus

[Copy link]
Published in 2015-12-1 05:04:13 | Show all floors |Read mode
Edited by bronco at 2015-12-1 15:11

Can you please share your performance results with a connected SATA disk attached to the USB-to-SATA bridge on the Plus?

I'm currently reviewing the new Banana Pi M3 which uses the same GL830 bridge and it's a bit hard to believe how slow disk accesses are: I do not exceed 13 MB/s write and 23 MB/s read using iozone.


Would be great if you could provide also some performance numbers from the OPi plus to confirm that. Please no dd/hdparm nonsense but iozone instead (apt-get install iozone3). The first 2 iozone calls from here http://linux-sunxi.org/USB/UAS#Testing_3_different_external_enclosures would be interesting to compare with.

Thx

0

threads

31

posts

109

credits

Registered member

Rank: 2

credits
109
Published in 2015-12-1 15:35:32 | Show all floors
Hi,

Installed izone to my CubieTruck to get some values from there for the reference. My cubietruck is running ubuntu 14.04 LTS "server-version" ie. no X-window and OS runs on SSD.

        Using maximum file size of 4096000 kilobytes.
        File size set to 4096000 kB
        Record Size 4 kB
        Command line used: ./iozone -a -g 4000m -s 4000m -i 0 -i 1 -r 4K
        Output is in kBytes/sec
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 kBytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
         4096000       4    39513    40234   133816   144580
#########

        Using maximum file size of 4096000 kilobytes.
        File size set to 4096000 kB
        Record Size 1024 kB
        Command line used: ./iozone -a -g 4000m -s 4000m -i 0 -i 1 -r 1024K
        Output is in kBytes/sec
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 kBytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
         4096000    1024    39536    40186   118838   117250   
#########

        Command line used: ./iozone -O -i 0 -i 1 -i 2 -e -+n -r 4K -s 2000m
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 kBytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
         2048000       4     9747        0    34491        0     4420     2620           

CPU details:
# cat /proc/cpuinfo
Processor        : ARMv7 Processor rev 4 (v7l)
processor        : 0
BogoMIPS        : 1816.98

processor        : 1
BogoMIPS        : 1823.53

Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt
CPU implementer        : 0x41
CPU architecture: 7
CPU variant        : 0x0
CPU part        : 0xc07
CPU revision        : 4

Hardware        : sun7i
Revision        : 0000
Serial                : 0000000000000000

Br,
-miha
                                                                              

0

threads

31

posts

109

credits

Registered member

Rank: 2

credits
109
Published in 2015-12-1 15:52:19 | Show all floors
Oh, forgot to mention that I don't own Orange yet but one piece ordered from aliexpress is on the way "015.11.29 17:27 (GMT-7): In transit (shipped by air)".
If parcel does not stop to customs I'll receive my Orange Pi Plus quite soon...

After I have managed to install OP+ and iozone, I'll post my results from OP+ also.
Thanks.
 Author| Published in 2015-12-1 16:08:23 | Show all floors
miha replied at 2015-12-1 15:35
Installed izone to my CubieTruck to get some values from there for the reference. My cubietruck ...

Thx for the reference values. But you should add that your A20 based Cubietruck has a real SATA port and not just an USB-to-SATA bridge as the H3 based OPi +.

BTW: Using mainline kernel and A20 based boards with fast DRAM clock you'll be able to get close to 45/200 MB/s through SATA.

Really looking forward to your iozone results from OPi +. I've to admit that I retested yesterday again with the BPi-M3 to get a clue how cpufreq settings matter (must also apply to H3): Two times sequential transfer speeds, 1st @ 480 MHz, 2nd @ 1800 MHz:

  1. 480 MHz:      kB  reclen    write  rewrite    read    reread
  2.          4096000       4    13529    13466    22393    22516
  3.          4096000    1024    13588    13411    22717    26115
  4.          
  5. 1.8 GHz: 4096000       4    15090    15082    30968    30316
  6.          4096000    1024    15174    15131    30858    29441
Copy code


5

threads

354

posts

2614

credits

Moderator

Rank: 7Rank: 7Rank: 7

credits
2614
Published in 2015-12-2 17:52:37 | Show all floors
Well
with mainline 4.3 kernel :
                   KB  reclen   write  rewrite       read    reread
         4096000       4   15123   15084    31005    31042                                                                          

                   KB  reclen      write  rewrite       read    reread
         4096000    1024   15133   15237    30504    30514                                                                          


Then with the only debian based distro i had on my Harddisk (lubuntu 14.04 untouched):
With 3.4 and scaling_governor at interactive:
                   KB  reclen   write  rewrite       read    reread
         4096000       4   15383   15588    31442    31402                                                                          

                   KB  reclen      write  rewrite       read    reread
         4096000    1024   15445   15260    20417    31516                                                                          
                                                        


With 3.4 and scaling_governor at performance (1200):
                                                
                    KB  reclen    write  rewrite      read    reread
          4096000       4   13753   13399    31252    31276


And now The Big Bang with a simple USB 2.0 2.5"Harddrive attached at the USB-port:
                   KB  reclen    write  rewrite      read    reread
          4096000       4   36752   36004    39533    39573


As I said this USB-SATA bridge is slower than a "simple" USB-Harddisk.

Boards:
orangepi plus, olinuxino A20, cubieboard A10, mele A2000 .....
 Author| Published in 2015-12-2 18:24:55 | Show all floors
fritz replied at 2015-12-2 17:52
And now The Big Bang with a simple USB 2.0 2.5"Harddrive attached at the USB-port:

Thx for both confirmation of the bad GL830 performance and that USB support in mainline kernel for M3 is ready (the good news: you'll be able to get close to 40MB/s using an UAS capable USB-to-SATA bridge... and of course avoiding the GL830 at all).

I made the same experience with Banana Pi M3 when comparing onboard 'pseudo SATA' with a random external enclosure: Close to 35MB/s: http://forum.armbian.com/index.p ... ew-of-banana-pi-m3/

It seems, the GL830 is a really bad choice to provide 'pseudo SATA' on OPi + and Banana Pi M3.

0

threads

31

posts

109

credits

Registered member

Rank: 2

credits
109
Published in 2015-12-12 04:07:41 | Show all floors
Orange Pi Plus received. Wheezy installed to EMMC and 120GB SSD hooked.

And this is result:

        Run began: Fri Dec 11 19:52:58 2015

        Auto Mode
        Using maximum file size of 4096000 kilobytes.
        File size set to 4096000 KB
        Record Size 4 KB
        Command line used: iozone -a -g 4000m -s 4000m -i 0 -i 1 -r 4K
        Output is in Kbytes/sec
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 Kbytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                            random  random    bkwd   record   stride                                   
              KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
         4096000       4
Error writing block 398070, fd= 3
write: Read-only file system

iozone: interrupted

exiting iozone

root@OrangePI:/mnt/home# dmesg
block 408792
[ 2226.210094] Buffer I/O error on device sda1, logical block 408793
[ 2226.210094] Buffer I/O error on device sda1, logical block 408794
[ 2226.210094] Buffer I/O error on device sda1, logical block 408795
[ 2226.210094] Buffer I/O error on device sda1, logical block 408796
[ 2226.210094] Buffer I/O error on device sda1, logical block 408797
[ 2226.210094] Buffer I/O error on device sda1, logical block 408798
[ 2226.210094] Buffer I/O error on device sda1, logical block 408799
---clip---
[ 2226.239402] Aborting journal on device sda1-8.
[ 2226.239431] JBD2: Error -5 detected when updating journal superblock for sda1-8.
[ 2226.241105] EXT4-fs error (device sda1): ext4_journal_start_sb:328: Detected aborted journal
[ 2226.241120] EXT4-fs (sda1): Remounting filesystem read-only
[ 2226.241128] EXT4-fs (sda1): previous I/O error to superblock detected
[ 2226.241178] EXT4-fs (sda1): ext4_da_writepages: jbd2_start: 2147483647 pages, ino 12; err -30
[ 2226.270476] EXT4-fs error (device sda1): ext4_find_entry:935: inode #2: comm iozone: reading directory block 0

Linux OrangePI 3.4.39 #2 SMP PREEMPT Mon Oct 12 12:03:03 CEST 2015 armv7l GNU/Linux

No heatsink (not received yet) and power supply provides 2.1A. Need maybe more juice?

I have regulated 5V PSU which can provide 6A but needs some soldering, replacing barrel plug with correct size for the OPI+

Br
-miha

0

threads

31

posts

109

credits

Registered member

Rank: 2

credits
109
Published in 2015-12-12 04:15:04 | Show all floors
Hi,

SSD disappeared completely from system. fdisk did not show device at all. partprobe didn't help but after reboot SSD is back. Stopped testing with iozone, trying again after PSU replaced.

Br
-miha

0

threads

31

posts

109

credits

Registered member

Rank: 2

credits
109
Published in 2015-12-12 17:24:26 | Show all floors
Edited by miha at 2015-12-12 18:51

Replacing PSU with more powerful did the trick, no more I/O errors. I did temporary soldering to get fast confirmation for my assumption that 2.1A is not enough for the OPI+ w/ SSD.

Still running without heatsink and these commands issued before running iozone:
  1. # echo 1008000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  2. # echo 1008000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
  3. # echo 1008000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
  4. # echo 1008000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
Copy code

And the results from iozone:

  1.         Command line used: iozone -a -g 4000m -s 4000m -i 0 -i 1 -r 4K

  2.                                                             random  random    bkwd   record   stride                                   
  3.               KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
  4.          4096000       4   14746   14816    32717    32792                                                                          

Copy code
  

  1.         Command line used: iozone -a -g 4000m -s 4000m -i 0 -i 1 -r 1024K
  2. .
  3.                                                             random  random    bkwd   record   stride                                   
  4.               KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
  5.          4096000    1024   15525   15574    34425    34658     
Copy code
  

  1.         Command line used: iozone -O -i 0 -i 1 -i 2 -e -+n -r 4K -s 2000m

  2.                                                             random  random    bkwd   record   stride                                   
  3.               KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   read  reread

  4.          2048000       4    3722       0    10079        0    1419    1674
Copy code


SSD is mounted with options discard,nodiratime,noatime. Filesystem is ext4                                                                 
 Author| Published in 2015-12-12 19:51:08 | Show all floors
miha replied at 2015-12-12 17:24
I did temporary soldering to get fast confirmation for my assumption that 2.1A is not enough for the OPI+ w/ SSD.

2.1A should be enough even if you use the wrong dvfs settings (all OS images currently use). Even when stresstesting an SSD and running at the upper clockspeed limits while being overvolted you should not exceed 8W (1.6A).

How did you supply power before?
You need to log in before you can reply login | Register

Points Rule

Quick reply Top Return list