Skip to content

Instantly share code, notes, and snippets.

@MilhouseVH
Last active October 5, 2019 01:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MilhouseVH/0e2b28235f3ac6f60acf238ea1552f58 to your computer and use it in GitHub Desktop.
Save MilhouseVH/0e2b28235f3ac6f60acf238ea1552f58 to your computer and use it in GitHub Desktop.

Timings are represented as <extract> + <install> where:

  • <extract> - time in seconds to untar/gunzip the tar or img.gz file, and store the resulting content
  • <install> - time in seconds to copy SYSTEM, KERNEL and - for RPi - bootloader files to /flash

The RPi3+ <extract> and <install> times are highly variable when writing to /flash and /storage, which may suggest an issue with my RPi3+ hardware, SD card, or a kernel/driver bug (or some combination of all three). The total time to upgrade the RPi3+ via tar file can vary by as much as 80 seconds. We don't see this issue when extacting to tmpfs, but it is seen when installing to /flash, which might suggest a performance issue when writing to the SD card.

We currently use dd with bs=1M (and conv=fsync) to transfer data to /flash, I wonder if we can do better here - something for later.


RPi1
  • 310MB RAM available with gpu_mem=160
  • /flash on 8GB SD Class2 SD card, /storage on 32GB USB memory stick
  • tar 129MB, img.gz 549MB (uncompressed)
tar [without SD overclock]
Run# tmpfs /storage
1 4.34 + 20.63 26.29 + 21.64
2 4.33 + 19.76 27.32 + 19.73
3 4.32 + 19.69 26.39 + 19.62
tar [63MHz SD overclock]
Run# tmpfs /storage
1 4.65 + 19.50 27.43 + 18.51
2 4.35 + 18.76 26.33 + 20.41
3 4.65 + 20.33 28.53 + 19.06
img.gz [without SD overclock]
Run# tmpfs /storage
1 xxxxxxxxxxxx 63.52 + 23.64
2 xxxxxxxxxxx6 61.18 + 22.56
3 xxxxxxxxxxxx 60.15 + 22.81
img.gz [63MHz SD overclock]
Run# tmpfs /storage
1 xxxxxxxxxxxx 62.12 + 25.03
2 xxxxxxxxxxxx 62.25 + 24.08
3 xxxxxxxxxxxx 62.17 + 23.51

RPi3+

  • 628MB RAM available with gpu_mem=320
  • /flash & /storage on 32GB SD Class10 SD card
  • No CPU overclock, force_turbo=0
  • tar 128MB, img.gz 549MB (uncompressed)
tar [without SD overclock]
Run# tmpfs /storage
1 6.15 + 24.69 13.30 + 33.49
2 6.04 + 13.15 21.77 + 16.41
3 6.05 + 14.40 18.74 + 13.86
tar [100MHz overclock]
Run# tmpfs /storage
1 3.55 + 61.38 12.14 + 32.06
2 3.55 + 26.48 18.77 + 72.97
3 3.58 + 10.83 30.25 + 82.18
img.gz [without SD overclock]
Run# tmpfs /storage
1 10.98 + 12.57 66.54 + 43.82
2 11.01 + 15.52 37.49 + 29.98
3 11.00 + 32.51 41.94 + 24.92
img.gz [100MHz SD overclock]
Run# tmpfs /storage
1 8.95 + 12.90 30.52 + 49.01
2 9.02 + 13.50 29.98 + 29.04
3 8.95 + 15.74 26.42 + 29.50

RPi4 (4GB)

  • 3467MB RAM available
  • /flash & /storage on SD Card (32GB SanDisk Extreme Class A1)
  • No CPU overclock, force_turbo=0
  • tar 126MB, img.gz 549MB (uncompressed)
tar
Run# tmpfs /storage
1 3.76 + 22.67 16.06 + 18.40
2 3.58 + 18.65 18.18 + 20.83
3 3.77 + 16.33 16.12 + 20.88
img.gz
Run# tmpfs /storage
1 9.36 + 16.07 54.99 + 21.01
2 9.35 + 16.14 54.63 + 20.76
3 9.36 + 13.60 52.63 + 18.09

Skylake i5 NUC

  • 7496MB RAM available
  • /flash & /storage on 128GB NVMe
  • tar 229MB, img.gz 549MB (uncompressed)
tar
Run# tmpfs /storage
1 0.69 + 5.02 2.07 + 4.91
2 0.73 + 4.89 2.54 + 5.25
3 0.70 + 4.85 2.09 + 5.00
img.gz
Run# tmpfs /storage
1 3.48 + 5.18 6.83 + 5.66
2 3.41 + 5.07 7.02 + 5.84
3 3.50 + 5.22 6.80 + 5.39

Revo 3700 (Atom D525)

  • 1735MB RAM available
  • /flash & /storage on 160GB 2.5" HDD
  • tar 229MB, img.gz 549MB (uncompressed)
tar
Run# tmpfs /storage
1 7.83 + 15.79 16.28 + 15.88
2 7.78 + 16.69 16.31 + 16.90
3 7.84 + 16.31 16.34 + 16.37
img.gz
Run# tmpfs /storage
1 11.78 + 16.45 29.34 + 16.53
2 11.79 + 16.33 29.44 + 19.66
3 11.78 + 17.31 29.43 + 17.15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment