oxidecomputer / helios

Helios: Or, a Vision in a Dream. A Fragment.
Mozilla Public License 2.0
371 stars 10 forks source link

image: add man pages + demangle(1) #140

Closed bcantrill closed 9 months ago

bcantrill commented 9 months ago

Also fixes #112. Both of these together increase the image size by ~19MiB or so.

citrus-it commented 9 months ago

demangle, absolutely, yes please.

Adding man pages and related tools to the gimlet ramdisk image feels like a step in the wrong direction, and may also not insignificantly increase zone installation time. Some 13s of instance startup is already due to omicron1 installation time and this may well add a second or two. @smklein and I have been talking about ways to reduce this but in general I'd suggest avoiding increases to the OS image size that can be avoided. Development illumos machines like atrium have the man pages and the common illumos ones are at https://illumos.org/man/

# time zoneadm -z test install

real    0m13.571s
user    0m0.325s
sys     0m4.551s
jclulow commented 9 months ago

Some 13s of instance startup is already due to omicron1 installation time and this may well add a second or two. @smklein and I have been talking about ways to reduce this but in general I'd suggest avoiding increases to the OS image size that can be avoided.

# time zoneadm -z test install

real    0m13.571s
user    0m0.325s
sys     0m4.551s

Is there a bug open that covers this problem? I agree that that's a relatively long time, and it's definitely longer than I would expect; e.g., on my work system (not a Gimlet):

 $ pfexec ptime -m zoneadm -z alpha install
INFO: omicron: installing zone alpha @ "/data/zones/alpha"...
INFO: omicron: replicating /usr tree...
INFO: omicron: replicating /lib tree...
INFO: omicron: replicating /sbin tree...
INFO: omicron: pruning SMF manifests...
INFO: omicron: pruning global-only files...
INFO: omicron: unpacking baseline archive...
INFO: omicron: copying /etc/default/init...
INFO: omicron: install complete, probably!

real        4.461508981
user        0.613072922
sys         3.843153670
trap        0.000023530
tflt        0.000000000
dflt        0.000000000
kflt        0.000000000
lock        0.000000000
slp         4.435181625
lat         0.002651174
stop        0.000388355

If we can get a ticket open that describes the problem and where it happens we can start the usual profiling and performance investigation.

citrus-it commented 9 months ago

Is there a bug open that covers this problem?

https://github.com/oxidecomputer/omicron/issues/3682

jclulow commented 9 months ago

Is there a bug open that covers this problem?

oxidecomputer/omicron#3682

Ah ha! I have attempted to improve things in https://github.com/oxidecomputer/helios-omicron-brand/pull/12 and it's now a bit faster:

gimlet-sn07 # zoneadm -z test uninstall -F ; ptime -m zoneadm -z test install
...
INFO: omicron: replicated /usr: 9514 files, 121518507, bytes, 562 msec
...
INFO: omicron: install complete, probably!

real        0.945731000
user        0.409957787
sys         3.937423102
...

I'll try and get that landed this week.

bcantrill commented 9 months ago

Thank you @citrus-it and @jclulow! I reworked these changes per @jclulow's suggestion -- and I also re-enabled the ARC (#141) which results in a significant performance improvement for zone creation. I have verified that the recovery image (now!) builds properly, and that we have the additional bits in the ramdisk (but not the bits that we don't want).