oxidecomputer/helios

enable primarycache on datasets in ramdisk pool

bcantrill opened this issue · 0 comments

In #69, the ARC was disabled for datasets in the ramdisk. While the sentiment behind this is sensible, the fact that these datasets also have gzip-9 enabled means that the performance effect is acute. Turning this back on has a substantial impact on zone install time; on a bench Gimlet:

tincup # ptime zoneadm -z testzone install
INFO: omicron: installing zone testzone @ "/zones/testzone"...
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       15.605642594
user        0.443209932
sys         5.972210201
tincup # zfs get primarycache rpool
NAME   PROPERTY      VALUE         SOURCE
rpool  primarycache  none          local
tincup # zfs set primarycache=all rpool
tincup # zoneadm -z testzone uninstall
Are you sure you want to uninstall zone testzone (y/[n])? y
INFO: omicron: uninstalling zone testzone...
tincup # ptime zoneadm -z testzone install
INFO: omicron: installing zone testzone @ "/zones/testzone"...
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        2.924403504
user        0.297828167
sys         1.621089043

Unsurprisingly, this is even faster when repeated:

tincup # zoneadm -z testzone uninstall
Are you sure you want to uninstall zone testzone (y/[n])? y
INFO: omicron: uninstalling zone testzone...
tincup # ptime zoneadm -z testzone install
INFO: omicron: installing zone testzone @ "/zones/testzone"...
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        1.643341227
user        0.272266618
sys         1.155153452

We should enable the ARC for these datasets -- and we should further very much still do the work described in oxidecomputer/helios-omicron-brand#12 as that will make it even faster still.