openwrt / asu

An image on demand server for OpenWrt based distributions
https://sysupgrade.openwrt.org
GNU General Public License v2.0
321 stars 80 forks source link

build: increase MAX_CUSTOM_ROOTFS_SIZE_MB to a reasonable value #827

Closed efahl closed 4 months ago

efahl commented 4 months ago

Current value of 100 is less than default when building OpenWrt (104). Increase it to 1024 to allow large root file systems on devices that can accommodate them.

https://github.com/openwrt/openwrt/blob/61e8728d86d7c11e1a5adab4bd37dae6b3b6cf2b/config/Config-images.in#L306

Closes: https://github.com/openwrt/asu/issues/826

aparcar commented 4 months ago

Did you test how long it takes to have a rootfs of one gigabyte?

codecov[bot] commented 4 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 84.61%. Comparing base (5e65dec) to head (fa09e1e). Report is 20 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #827 +/- ## ========================================== + Coverage 80.75% 84.61% +3.85% ========================================== Files 15 15 Lines 977 923 -54 ========================================== - Hits 789 781 -8 + Misses 188 142 -46 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

efahl commented 4 months ago

Did you test how long it takes to have a rootfs of one gigabyte?

Here's the results from doing image builder runs of x86/64 generic at three root fs sizes:

$ time make image PROFILE=generic ROOTFS_PARTSIZE=512

I also checked the resulting size of openwrt-x86-64-generic-ext4-combined-efi.img.gz for each build, as that seems to be the biggest of the images produced. Times are the worst case of three runs at each size, rounded up to nearest second (variation was always < 1s, so one run would have sufficed).

ROOTFS_PARTSIZE= real user img size
104 26s 18s 12M
512 48s 25s 13M
1024 74s 33s 13M

(Those dds take forever, don't they?)

On the production ASU server, I measure the "104" builds to take about 90s, so my build platform is running about 3x faster than the server. Scaling that 74s * 3 = 225s = 3.75m, call it ~4 minutes...

aparcar commented 4 months ago

@dangowrt what do you think about this?

efahl commented 4 months ago

Just did a build using 256 MB, seems to work just fine. My time estimate was a bit low, 3.5 minutes for this one, but otherwise 👍🏼

Image: https://sysupgrade.openwrt.org/store/1c2a8746a0b600c998b9bb7b873ef34c/openwrt-f2f3d6a0adb2-x86-64-generic-squashfs-combined-efi.img.gz
Downloaded https://sysupgrade.openwrt.org/api/v1/build/1c2a8746a0b600c998b9bb7b873ef34c to /tmp/owut-build-status.json
Status: 200
Detail: done
Build completed in 210 seconds.
build_at       = 2024-05-12T11:49:39.000000Z
version_number = SNAPSHOT
version_code   = r26300-da0cd9d764
rootfs_size_mb = 256