After some workshopping this morning we have a solution for larger files. Almost every package is now available with CDN acceleration. For files over 64MB the fetcher will need to follow a series of redirects to work properly. Files under 64MB will be served fast from every region. Larger files will be proxyed and cached on a smaller network of servers that can handle them. Once cached they will be stored for up to a month. Because sstate is immutable that means fast access after the first use in a region.
Set SSTATE_MIRRORS <https://docs.yoctoproject.org/ref-manual/variables.html#term-SSTATE_MIRRORS> to include https://cdn.jsdelivr.net/yocto/sstate/all or http://cdn.jsdelivr.net/yocto/sstate/all, test it out, and report back. If we want the system to perform as fast as possible we need to change SSTATE to work with 64MB file segments but that's a discussion to have after this solution is tested. On Fri, Sep 22, 2023 at 12:03 PM Michael Halstead < mhalst...@linuxfoundation.org> wrote: > Here are packages and size ranges that are not yet served via CDN. > Hopefully testing on the smaller files is possible while we figure out > a solution for these. > > assimp 75M 76M > binutils 64M 100M > boost 68M 148M > ceres-solver 167M 182M > cmake 157M 553M > ffmpeg 68M 69M > gcc 127M 681M > gcc-cross-aarch64 64M 102M > gcc-cross-arm 64M 72M > gcc-cross-i686 65M 80M > gcc-cross-mips 65M 69M > gcc-cross-mips64 64M 69M > gcc-cross-powerpc 64M 72M > gcc-cross-x86_64 65M 104M > gcc-crosssdk-aarch64-pokysdk-linux 65M 75M > gcc-crosssdk-i686-oesdk-linux 65M 77M > gcc-crosssdk-i686-pokysdk-linux 65M 79M > gcc-crosssdk-i686-w64-mingw32 66M 78M > gcc-crosssdk-x86_64-oesdk-linux 65M 78M > gcc-crosssdk-x86_64-pokysdk-linux 65M 80M > gcc-crosssdk-x86_64-w64-mingw32 67M 79M > gdb 66M 105M > ghostscript 64M 115M > git 68M 90M > glibc-locale 81M 228M > go 67M 67M > go-binary-native 82M 82M > go-cross-core2-32 98M 100M > go-cross-core2-64 93M 100M > go-cross-corei7-64 98M 99M > go-cross-cortexa15t2hf-neon 99M 99M > go-cross-cortexa57 93M 99M > go-cross-cortexa8hf-neon 99M 100M > go-cross-mips32r2 98M 99M > go-cross-mips64 99M 99M > go-cross-mips64r2 99M 99M > go-native 86M 86M > go-runtime 64M 82M > grpc 74M 102M > hdf5 78M 137M > influxdb 76M 98M > intel-media-driver 68M 132M > jemalloc 164M 164M > kea 65M 153M > lib32-binutils 64M 70M > lib32-boost 77M 122M > lib32-cmake 158M 305M > lib32-gcc 144M 390M > lib32-gcc-cross-i686 65M 79M > lib32-gcc-cross-mips 65M 69M > lib32-ghostscript 65M 83M > lib32-git 65M 65M > lib32-glibc-locale 81M 228M > lib32-go-cross-x86 98M 99M > lib32-kea 64M 88M > lib32-linux-firmware 275M 419M > lib32-llvm 1126.4M 2662.4M > lib32-ltp 77M 305M > lib32-mesa 65M 68M > lib32-openssl 119M 360M > lib32-piglit 106M 106M > lib32-qemu 275M 639M > lib32-rust 93M 129M > lib32-rust-llvm 64M 76M > lib32-spirv-tools 68M 107M > lib32-valgrind 68M 89M > lib32-vulkan-demos 74M 74M > lib32-vulkan-validation-layers 65M 101M > lib32-webkitgtk 1126.4M 927M > lib64-boost 75M 119M > lib64-gcc 151M 401M > lib64-gcc-cross-mips64 65M 69M > lib64-gcc-cross-x86_64 65M 80M > lib64-glibc-locale 82M 228M > lib64-go-cross-x86_64 98M 99M > lib64-go-runtime 68M 81M > lib64-ltp 67M 347M > lib64-mesa 66M 68M > lib64-openssl 276M 411M > lib64-rust 97M 123M > lib64-rust-llvm 64M 67M > lib64-valgrind 65M 84M > libyang 93M 93M > linux-firmware 275M 419M > linux-intel 120M 395M > linux-yocto 66M 537M > linux-yocto-rt 174M 287M > llvm 1126.4M 3481.6M > llvm-native 71M 88M > ltp 64M 598M > mariadb 1331.2M 966M > mariadb-native 237M 259M > mesa 64M 113M > minifi-cpp 155M 214M > mozjs-102 183M 255M > nativesdk-glibc-locale 81M 226M > nativesdk-qemu 245M 644M > nativesdk-rust 82M 125M > nativesdk-rust-llvm 65M 73M > nodejs 1024.0M 723M > opencv 185M 237M > opengl-es-cts 406M 560M > openssl 92M 685M > php 67M 68M > piglit 106M 106M > poco 75M 107M > python3-grpcio 65M 88M > python3-wxgtk4 70M 100M > qemu 1228.8M 929M > qemu-system-native 65M 71M > renderdoc 67M 82M > rocksdb 177M 272M > rust 85M 140M > rust-llvm 64M 79M > rust-llvm-native 287M 418M > rust-native 78M 85M > spirv-tools 64M 195M > systemd 69M 71M > tesseract-lang 369M 451M > upm 82M 82M > valgrind 64M 128M > vsomeip 82M 149M > vulkan-cts 592M 833M > vulkan-demos 73M 138M > vulkan-validation-layers 65M 108M > webkitgtk 1024.0M 995M > webkitgtk3 1126.4M 1638.4M > wireshark 65M 85M > wxwidgets 70M 88M > > On Fri, Sep 22, 2023 at 10:32 AM Michael Halstead < > mhalst...@linuxfoundation.org> wrote: > >> Right now we have https://cdn.jsdelivr.net/yocto/sstate set up as a CDN >> mirroring proxy endpoint. It's fast and completely free to the project. >> However, it will only work for files smaller than 64MB and will send a >> redirect to the main server at sstate.yoctoproject.org for files larger >> than 64MB. >> >> The good news is that we have a fast free CDN provided by >> https://www.jsdelivr.com/ and their many sponsors for 99.4% of our files. >> >> Here is an estimated distribution of sstate files currently available: >> 1 KB-4 KB: 103168 >> 4 KB-16 KB: 1218048 >> 16 KB-64 KB: 1886976 >> 64 KB-256 KB: 1225216 >> 256 KB-1 MB: 170752 >> 1 MB-4 MB: 92928 >> 4 MB-16 MB: 83200 >> 16 MB-64 MB: 40448 >> 64 MB-256 MB: 17664 >> 256 MB-1 GB: 7936 >> 1 GB-4 GB: 2560 >> >> I'm still working on a CDN solution for the larger files but we can begin >> testing https://cdn.jsdelivr.net/yocto/sstate today. >> >> Here is an example link to a file that is currently popular from each >> location: >> >> >> http://sstate.yoctoproject.org/all/universal/c6/81/sstate:re2c-native:x86_64-linux:3.1:r0:x86_64:11:c681f19e2786732c7920860d0b27cdcf3a79c9441d9bdaa82319a12e96e6246e_deploy_source_date_epoch.tar.zst >> >> >> https://cdn.jsdelivr.net/yocto/sstate/all/universal/c6/81/sstate:re2c-native:x86_64-linux:3.1:r0:x86_64:11:c681f19e2786732c7920860d0b27cdcf3a79c9441d9bdaa82319a12e96e6246e_deploy_source_date_epoch.tar.zst >> >> I'm also attaching a list of the largest files in sstate. Anything we can >> do to reduce the size of these or to split them into smaller pieces will >> help with hosting and with the user's download experience. >> >> -- >> Michael Halstead >> Linux Foundation / Yocto Project >> Systems Operations Engineer >> > > > -- > Michael Halstead > Linux Foundation / Yocto Project > Systems Operations Engineer > -- Michael Halstead Linux Foundation / Yocto Project Systems Operations Engineer
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#61087): https://lists.yoctoproject.org/g/yocto/message/61087 Mute This Topic: https://lists.yoctoproject.org/mt/101525879/21656 Group Owner: yocto+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/yocto/leave/6691583/21656/737036229/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-