#15731

Run runsc from the //:release layout in docs and CI.

OpenEtiennePerotwants to merge intofrom

This is a stack of PRs that removes a lot of dependency edges between the Sentry and the runsc binaries. This gets rid of many redundant package init()s, and slims down binaries.

Cumulatively, this stack of PRs:

  • Shaves off 23% cold-start and 9% warm-start latency.
  • Slims down the gVisor release size from 224.7 MiB to 156.6 MiB thanks to removal of redundant dependencies across binaries. runsc shrinks from 54 MiB to 18 MiB.

End-to-end sandbox run result running runsc do /bin/true on n2-standard-16:

                    │   before    │            after             │
                    │   sec/op    │   sec/op     vs base         │
RunscDo/cache=warm    39.68m ± 0%   36.08m ± 0%   -9.07% (n=700)
RunscDo/cache=cold    231.1m ± 0%   178.0m ± 0%  -22.96% (n=700)
OCI/op=create         27.04m ± 0%   24.03m ± 0%  -11.11% (n=500)
OCI/op=start          14.50m ± 0%   11.68m ± 1%  -19.45% (n=500)
OCI/op=delete         7.147m ± 0%   4.673m ± 1%  -34.62% (n=500)
OCI/op=create+start   41.58m ± 0%   35.78m ± 0%  -13.95% (n=500)
OCI/op=end-to-end     48.74m ± 0%   40.43m ± 0%  -17.04% (n=500)

Similar for rootless mode:

                   │   before    │            after             │
                   │   sec/op    │   sec/op     vs base         │
RunscDo              44.67m ± 0%   39.56m ± 0%  -11.43% (n=500)
OCI/op=create        32.99m ± 0%   29.98m ± 0%   -9.13% (n=500)
OCI/op=start         15.93m ± 0%   12.73m ± 0%  -20.07% (n=500)
OCI/op=delete        8.361m ± 0%   5.761m ± 0%  -31.11% (n=500)
OCI/op=create+start  48.89m ± 0%   42.72m ± 0%  -12.61% (n=500)
OCI/op=end-to-end    57.28m ± 0%   48.44m ± 0%  -15.42% (n=500)

The PR stack:

  • (you are here) PR #15731
  • PR #15694
  • PR #15695
  • PR #15696
  • PR #15697
  • PR #15698
  • PR #15699
  • PR #15700
  • PR #15701
  • PR #15702
  • PR #15703
  • PR #15732
  • PR #15733

Activity

0

No activity yet.