Ich habe im Internet noch keine Benchmarks zum Banana Pi M2 Berry gefunden. Deshalb habe ich die Performance meines Berrys getestet, falls jemand auf der Suche nach Leistungswerten sein sollte.

Die folgenden Benchmarks wurden auf einem frisch installiertem Armbian 5.75 (Debian Stretch) ausgeführt. Es laufen daher keine Dienste wie Web- oder Datenbankserver im Hintergrund. Als Kernel kommt Linux Mainline 4.20.7 zum Einsatz.

CPU Performance

Als CPU-Benchmark nutze ich sysbench Version 0.4.12 aus den Debian-Paketquellen. Der Prozessor des BPI-M2 Berry ist ein ARM Cortex-A7 Quad-Core mit 1,5 GHz.

Single-Core Performance

$ sysbench --test=cpu --cpu-max-prime=20000 run
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 20000


Test execution summary:
    total time:                          540.1434s
    total number of events:              10000
    total time taken by event execution: 540.1337
    per-request statistics:
         min:                                 53.99ms
         avg:                                 54.01ms
         max:                                 59.12ms
         approx.  95 percentile:              54.03ms

Threads fairness:
    events (avg/stddev):           10000.0000/0.00
    execution time (avg/stddev):   540.1337/0.00

Multi-Core Performance (alle 4 Kerne)

$ sysbench --test=cpu --cpu-max-prime=20000 --num-threads=4 run
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 4

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 20000


Test execution summary:
    total time:                          135.6720s
    total number of events:              10000
    total time taken by event execution: 542.5683
    per-request statistics:
         min:                                 53.99ms
         avg:                                 54.26ms
         max:                                 95.83ms
         approx.  95 percentile:              54.22ms

Threads fairness:
    events (avg/stddev):           2500.0000/13.40
    execution time (avg/stddev):   135.6421/0.02

Netzwerk Performance

Der BPI-M2 Berry besitzt einen Gigabit-Ethernet Port. Ich verwende zum Testen iperf3. Der Berry ist über einen Switch mit meinem PC verbunden, der die iperf3-Serverrolle übernimmt.

iperf3 TX (Senderichtung)

$ iperf3 -c 192.168.178.10
Connecting to host 192.168.178.10, port 5201
[  4] local 192.168.178.14 port 33090 connected to 192.168.178.10 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  99.4 MBytes   832 Mbits/sec    0    375 KBytes
[  4]   1.00-2.00   sec  98.8 MBytes   828 Mbits/sec    0    375 KBytes
[  4]   2.00-3.00   sec  98.7 MBytes   828 Mbits/sec    0    375 KBytes
[  4]   3.00-4.00   sec  98.6 MBytes   827 Mbits/sec    0    375 KBytes
[  4]   4.00-5.00   sec  98.6 MBytes   827 Mbits/sec    0    392 KBytes
[  4]   5.00-6.00   sec  98.4 MBytes   827 Mbits/sec    0    392 KBytes
[  4]   6.00-7.00   sec  98.4 MBytes   826 Mbits/sec    0    392 KBytes
[  4]   7.00-8.00   sec  98.6 MBytes   826 Mbits/sec    0    392 KBytes
[  4]   8.00-9.00   sec  98.6 MBytes   826 Mbits/sec    0    392 KBytes
[  4]   9.00-10.00  sec  98.2 MBytes   828 Mbits/sec    0    392 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   986 MBytes   827 Mbits/sec    0             sender
[  4]   0.00-10.00  sec   985 MBytes   826 Mbits/sec                  receiver

iperf Done.

iperf3 RX (Empfangsrichtung)

$ iperf3 -c 192.168.178.10 -R
Connecting to host 192.168.178.10, port 5201
Reverse mode, remote host 192.168.178.10 is sending
[  4] local 192.168.178.14 port 33100 connected to 192.168.178.10 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   109 MBytes   918 Mbits/sec
[  4]   1.00-2.00   sec   109 MBytes   919 Mbits/sec
[  4]   2.00-3.00   sec   110 MBytes   919 Mbits/sec
[  4]   3.00-4.00   sec   110 MBytes   919 Mbits/sec
[  4]   4.00-5.00   sec   110 MBytes   919 Mbits/sec
[  4]   5.00-6.00   sec   110 MBytes   919 Mbits/sec
[  4]   6.00-7.00   sec   109 MBytes   919 Mbits/sec
[  4]   7.00-8.00   sec   110 MBytes   919 Mbits/sec
[  4]   8.00-9.00   sec   110 MBytes   919 Mbits/sec
[  4]   9.00-10.00  sec   110 MBytes   919 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.07 GBytes   921 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  1.07 GBytes   919 Mbits/sec                  receiver

iperf Done.

SATA Performance

Zum Testen der Geschwindigkeit des SATA-Ports benutze ich eine ziemlich alte (2011) Kingston SSDNow V100 mit 64 GB (SATA II). Daher bitte die Messwerte mit Vorsicht genießen! Das Dateisystem habe ich frisch mit mkfs.ext4 formatiert. Da ich nicht die SSD, sondern die Schnittstelle testen will, messe ich nur die Geschwindingkeit beim sequentiellen Lesen.

Banana Pi M2 Berry an SATA SSD angeschlossen

Getestet wird mit 32 GB an Daten, um Caching zu vermeiden:

$ sysbench --test=fileio --file-total-size=32G prepare
(...)
$ sysbench --test=fileio --file-total-size=32G --file-test-mode=seqrd run
sysbench 0.4.12: multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1

Extra file open flags: 0
128 files, 256Mb each
32Gb total file size
Block size 16Kb
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing sequential read test
Threads started!
Done.

Operations performed:  2097152 Read, 0 Write, 0 Other = 2097152 Total
Read 32Gb  Written 0b  Total transferred 32Gb  (132.56Mb/sec)
 8483.82 Requests/sec executed

Test execution summary:
    total time:                          247.1944s
    total number of events:              2097152
    total time taken by event execution: 243.5119
    per-request statistics:
         min:                                  0.03ms
         avg:                                  0.12ms
         max:                                 11.79ms
         approx.  95 percentile:               0.69ms

Threads fairness:
    events (avg/stddev):           2097152.0000/0.00
    execution time (avg/stddev):   243.5119/0.00