Page 1 of 1

How to identify what's making one RPI3 faster?

Posted: Thu Jul 06, 2017 6:24 pm
by SteveJ
I have three RPI3s at three different locations.

The first one (we'll call Pi#1) I set up using NOOBs. It was pre-installed as part of a CanaKit.

The second and third ones (Pi#2 and Pi#3) I built from individually purchased parts, and I set both up by installing Raspian directly on the micro-SD card.

They all have the same kernel and packages installed. I use them solely for PiHole, Plex, and SyncThing. As far as I can tell, they are all configured identically.

Whenever I update them (which I do all at the same time) the Pi#1 always updates WAY faster than the other two. It has nothing to do with network speed, since Pi#2 is actually on the fastest network.

The only differences between Pi#1 vs Pi#2 and Pi#3 is that Pi#1 was set up using NOOBs and has a different brand SD card than the other two. All three run headless and are connected via Ethernet.

I'd like to know if the massive speed advantage is a function of the SD card (which is what I suspect), or whether somehow the configuration was better optimized by NOOBs (possible, but I'm dubious), or a combination of both. All three have 32G cards.

If I do:

Code: Select all

cd /sys/class/mmc_host/mmc?/mmc?:*
echo "man:$(cat manfid) oem:$(cat oemid) name:$(cat name) hwrev:$(cat hwrev) fwrev:$(cat fwrev)"
The output for all three SD cards is:

Code: Select all

Pi#1: man:0x000003 oem:0x5344 name:SL32G hwrev:0x8 fwrev:0x0

Pi#2: man:0x00001b oem:0x534d name:00000 hwrev:0x1 fwrev:0x0

Pi#3: man:0x00001b oem:0x534d name:00000 hwrev:0x1 fwrev:0x0
Settings in /boot/config.txt are identical on all three.

The output of vcgencmd get_config arm_freq on all three is arm_freq=1200.

What other values or settings can I share here to help solve the mystery?

Thanks in advance.

Re: How to identify what's making one RPI3 faster?

Posted: Thu Jul 06, 2017 6:31 pm
by runboy93
Might be SD card, faster cards are always better to perform.

Re: How to identify what's making one RPI3 faster?

Posted: Thu Jul 06, 2017 7:11 pm
by SteveJ
runboy93 wrote:Might be SD card, faster cards are always better to perform.
Thanks for the reply. I agree. It *might* be the SD card.

I'm trying to figure out how to find out *for sure.* :)

Re: How to identify what's making one RPI3 faster?

Posted: Thu Jul 06, 2017 7:28 pm
by gkaiseril
Look at the cards and see what the sizes and class markings are. Then swap the cards around and reboot.

Re: How to identify what's making one RPI3 faster?

Posted: Thu Jul 06, 2017 11:24 pm
by SteveJ
gkaiseril wrote:Look at the cards and see what the sizes and class markings are. Then swap the cards around and reboot.
When I said "three different locations" in my OP, I meant "three different states." Swapping cards around isn't an option. :(

Re: How to identify what's making one RPI3 faster?

Posted: Thu Jul 06, 2017 11:25 pm
by SteveJ
Are there any disk read/write test utilities I could run to see how much difference that's making?

Re: How to identify what's making one RPI3 faster?

Posted: Thu Jul 06, 2017 11:35 pm
by peterlite
http://www.raspberrypi-spy.co.uk/2015/1 ... shoot-out/
oem:0x5344 and the other id listed near the bottom of the article.

Note that the benchmark measures only a small amount of data. Many cards are fast for small amounts then slow down for larger amounts because their erase cycle is too slow.

Re: How to identify what's making one RPI3 faster?

Posted: Fri Jul 07, 2017 12:08 am
by davidcoton
SteveJ wrote:
gkaiseril wrote:Look at the cards and see what the sizes and class markings are. Then swap the cards around and reboot.
When I said "three different locations" in my OP, I meant "three different states." Swapping cards around isn't an option. :(
In any case this would only test Pi hardware against SDCard hardware and software, it would not differentiate between the SDCard hardware and the different software installations. To do that you would need the copy the software images (tricky with the NOOBs one) and shuffle the images to different SDCards. By the time anyone does that, so much has changed that the comparisons may well be invalid. You stand at least an equal chance (by Murphy's Law, greater than equal) of making the good installation worse, rather than improving the poor ones.

I agree the most likely difference is the SDCard itself, but I can't see a way to prove it. Differences in a NOOBs install are also possible but seem less likely. Other factors to consider are card size and WAN speed (network outside your control -- did you mean WAN or LAN when you referred to network speed?). I'm not sure that any test you can do will distinguish between card issues and driver issues, but you might eliminate WAN effects. Do your observed timings differentiate between the download phase (probably WAN limited) and the installation phase (purely local, network not involved)? Final thought: are you observing all three Pis by the same method, or is one local to you (observed over LAN) and the others remote (WAN -- I'm not sure this would be significant, but you need to document all possibilities).

Re: How to identify what's making one RPI3 faster?

Posted: Fri Jul 07, 2017 5:47 am
by SteveJ
davidcoton wrote:In any case this would only test Pi hardware against SDCard hardware and software, it would not differentiate between the SDCard hardware and the different software installations. To do that you would need the copy the software images (tricky with the NOOBs one) and shuffle the images to different SDCards. By the time anyone does that, so much has changed that the comparisons may well be invalid. You stand at least an equal chance (by Murphy's Law, greater than equal) of making the good installation worse, rather than improving the poor ones.
I agree with your well thought-out assessment.
I agree the most likely difference is the SDCard itself, but I can't see a way to prove it. Differences in a NOOBs install are also possible but seem less likely. Other factors to consider are card size and WAN speed (network outside your control -- did you mean WAN or LAN when you referred to network speed?). I'm not sure that any test you can do will distinguish between card issues and driver issues, but you might eliminate WAN effects. Do your observed timings differentiate between the download phase (probably WAN limited) and the installation phase (purely local, network not involved)? Final thought: are you observing all three Pis by the same method, or is one local to you (observed over LAN) and the others remote (WAN -- I'm not sure this would be significant, but you need to document all possibilities).
All are connected via LAN (see OP where I said "All three run headless and are connected via Ethernet"). I'm usually observing the differences via identical method from a fourth location, so I'm connecting through identical UBNT EdgeRouter firewalls to each Pi. Though I do visit the other locations occasionally, in which case one Pi will be local to me. But no matter where I am, Pi#1 always performs sudo apt-get update && sudo apt-get dist-upgrade -y faster than #2 and #3, and #2 and #3 are practically identical in terms of how long it takes them to perform an update.

I still lean toward faster SD card, but I'd love an actual way to test it directly.

Re: How to identify what's making one RPI3 faster?

Posted: Fri Jul 07, 2017 5:56 am
by SteveJ
Found this thread that gave a method for testing SD card speed: viewtopic.php?f=91&t=31925

Pi#1

Code: Select all

[email protected]:~ $ dd if=/dev/zero of=~/test.tmp bs=500K count=1024
1024+0 records in
1024+0 records out
524288000 bytes (524 MB) copied, 56.3384 s, 9.3 MB/s
[email protected]:~ $ sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
3
[email protected]:~ $ dd if=~/test.tmp of=/dev/null bs=500K count=1024
1024+0 records in
1024+0 records out
524288000 bytes (524 MB) copied, 23.6641 s, 22.2 MB/s
Pi#2

Code: Select all

[email protected]:~ $ dd if=/dev/zero of=~/test.tmp bs=500K count=1024
1024+0 records in
1024+0 records out
524288000 bytes (524 MB) copied, 124.171 s, 4.2 MB/s
[email protected]:~ $ sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
3
[email protected]:~ $ dd if=~/test.tmp of=/dev/null bs=500K count=1024
1024+0 records in
1024+0 records out
524288000 bytes (524 MB) copied, 26.3681 s, 19.9 MB/s
Pi#3

Code: Select all

[email protected]:~ $ dd if=/dev/zero of=~/test.tmp bs=500K count=1024
1024+0 records in
1024+0 records out
524288000 bytes (524 MB) copied, 102.958 s, 5.1 MB/s
[email protected]:~ $ sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
3
[email protected]:~ $ dd if=~/test.tmp of=/dev/null bs=500K count=1024
1024+0 records in
1024+0 records out
524288000 bytes (524 MB) copied, 26.1446 s, 20.1 MB/s
So it looks like read speed measured much faster on Pi1 while write speed tested only slightly faster on Pi1. However, from what I understand the write speed is far more important than read speed, so I'm back to scratching my head.

Re: How to identify what's making one RPI3 faster?

Posted: Fri Jul 07, 2017 6:34 am
by bensimmo
I would go SD cards, I do see differences between my cards, there is a lot of SD access.

Though it could be the mirrors.

All I can think of is;
is there some way to time each aspect of apt.
The header updates, the downloads and the unpacking and installing.
While logging CPU usage and MHz.

Re: How to identify what's making one RPI3 faster?

Posted: Fri Jul 07, 2017 6:44 am
by bensimmo
Pi1 has a Sandisc card in in (sl32)
The other too are either a Samsung or Samsung based*.
Specific models i don't think you can tell but I've not looked in detail ;-)
http://elinux.org/RPi_SD_cards#Which_SD_card.3F
The good/bad of that site I think is quite outdated.

I say Samsung based as the majority are Samsung cards and the other may just use the same setup.