RPi3 + OSMC 2016.2-4 slow copy speed

Hello, I recently purchased RPi3 as replacement for mine RPi2B. I’m using my Pi with 16GB Sandisk Extreme microSD card, 1Gbit USB AX88179 eth adapter and 1.5TB WD Green (ext4) connected through USB.

While copying from network to microSD card or HDD or from microSD to HDD or vice versa with RPi2 I’ve had speeds from ~20 to 26-27 MB/s and the CPU was clearly the bottle neck (100% CPU usage during copying).

Now, the same setup with RPi3 (the same image as I used in RPi2 with updated config.txt to match RPi3 settings; but tried it also with clean install of OSMC 2016.2-3, updated to 2-4) gives me only ~8 to 10-11 MB/s transfer rate (also from microSD to microSD or HDD and vice versa, so it’s not a network card problem) and the CPU usage during copy is 10 to 25%.

I’m pretty dissapointed with the result. Is this some kind of bug or a feature? Anyone experiencing the same results?

Are you testing with everything the same except the Pi2/Pi3 board?
e.g. the same sdcard with both tests?

First I’ve tested it with the same sdcard (only Pi board and then config.txt file was changed - to match RPi3 clock speeds), but then I’ve made clean OSMC install from latest image (2-3) and updated the image to 2-4 with another sdcard. Same results.

WD Green are horrible drives, but enough about that. I’ve noticed similar issues but haven’t done any metrics on it. I play from a remote NAS so buffering is done during playback. Haven’t had any problems with playback itself but OSMC seems unresponsive at times.

Can you test the interface speed with iperf? It would tell you whether the issue is with network or storage.

IIRC it’s

iperf -s

on the server and

iperf -c server-ip

on the other end.

A 100 Mbit connection should appear as such.

I kid you not, I had the exact same issue BUT the other way around. Got my PI3 a week ago and slapped in the OSMC SD card just to get a feel for the responsiveness. I just happened that I needed to copy some large files USB3 drive to USB3 drive (both hooked to a powered USB2 hub). That’s when I noticed the speed improvements that you mentioned.

As I reverted back to the PI2 it was some 11MB/s…

Unfortunately I couldn’t tell you for sure on which OSMC version I was at that time… I’ll try to reproduce.

Cheers
Ralph

Hello,

my iperf results ->

[ 3] local 192.168.1.106 port 37250 connected with 192.168.1.100 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 250 MBytes 210 Mbits/sec

Which gives roughly 30 resp. 26 MB/s…

As I said, it’s not a network card problem.

Bite me, but after several days of using my OSMC with RPi3, I’m observing the same. Suddenly my copy speeds are around 16-17MB/s while nothing changed / no updates installed (I’m applying my updates manually). But still not the original speeds I’ve had with RPi2. I’m suspecting the usb controller resp. could it be the drives for the usb controller?

The only significant difference between the Pi2 and Pi3 with regard to SD cards is likely to be the fact that the Pi3 will run hotter and draw more current, which means that if it isn’t adequately powered and cooled then the core frequency will be reduced. Since the sdhost block shares the core clock, when the core frequency is reduced SD transfer speeds also drop.

Try running this on your Pi3 and tell me what you get:
vcgencmd measure_clock core
cat /sys/class/thermal/thermal_zone0/temp
sudo dd if=/dev/mmcblk0p1 of=/dev/null iflag=direct bs=512k
vcgencmd measure_clock core
cat /sys/class/thermal/thermal_zone0/temp

I get:
pi@raspberrypi:~$ cat /sys/class/thermal/thermal_zone0/temp 47774 pi@raspberrypi:~$ sudo dd if=/dev/mmcblk0p1 of=/dev/null iflag=direct bs=512k 120+0 records in 120+0 records out 62914560 bytes (63 MB) copied, 2.74052 s, 23.0 MB/s pi@raspberrypi:~$ vcgencmd measure_clock core frequency(1)=400000000 pi@raspberrypi:~$ cat /sys/class/thermal/thermal_zone0/temp 49388
That speed (23MB/s) is without overclocking the sdhost interface, and is using a Verbatim Class 10 card.

my pi3 sandisk ultra 32gb class 10 HC 1
osmc@osmc:~$ vcgencmd measure_clock core
frequency(1)=250000000
osmc@osmc:~$ cat /sys/class/thermal/thermal_zone0/temp
40084
osmc@osmc:~$ sudo dd if=/dev/mmcblk0p1 of=/dev/null iflag=direct bs=512k
486+0 records in
486+0 records out
254803968 bytes (255 MB) copied, 11.5844 s, 22.0 MB/s
osmc@osmc:~$ vcgencmd measure_clock core
frequency(1)=250000000
osmc@osmc:~$ cat /sys/class/thermal/thermal_zone0/temp
40084

pi3 sandisk extreme 16gb class 10 hc1 u3

osmc@osmc:~$ vcgencmd measure_clock core
frequency(1)=250000000
osmc@osmc:~$ cat /sys/class/thermal/thermal_zone0/temp
46540
osmc@osmc:~$ sudo dd if=/dev/mmcblk0p1 of=/dev/null iflag=direct bs=512k
486+0 records in
486+0 records out
254803968 bytes (255 MB) copied, 11.5087 s, 22.1 MB/s
osmc@osmc:~$ vcgencmd measure_clock core
frequency(1)=400000000
osmc@osmc:~$ cat /sys/class/thermal/thermal_zone0/temp
48692

Those are both respectable speeds, with sensible temperatures. Were these measurements taken at a time when you have observed slow accesses?

Write speeds are going to be slower than reads, particularly for large transfers where caching makes little-to-no difference, and SD-to-SD is going to be slower still since there is only one data channel that has to service both ends of the transfer.