Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Patchadd performance

11 views
Skip to first unread message

Tim Bradshaw

unread,
Aug 26, 2007, 12:26:48 PM8/26/07
to
Is there any simple reason why patching Solaris takes *so* long? I
can see that it's probably being ultra-paranoid about backout etc, but
it's still just incredibly slow: in many cases it must be faster to
reinstall than patch.

Is there anything easy that can be done to speed up patchadd?

--tim

Geoff Lane

unread,
Aug 26, 2007, 4:57:02 PM8/26/07
to
Tim Bradshaw <tfb+g...@tfeb.org> wrote:
> Is there any simple reason why patching Solaris takes *so* long? I
> can see that it's probably being ultra-paranoid about backout etc, but
> it's still just incredibly slow: in many cases it must be faster to
> reinstall than patch.

It is very careful not to leave the system in an unstable state.

> Is there anything easy that can be done to speed up patchadd?

Don't let uninstalled patches build up :-) With smpatch and updatemanager,
you can apply most patches to a live system.

Casper Dik used to maintain a fastpatch utility which was much faster than
the official method. See ftp://ftp.science.uva.nl/pub/solaris/auto-install/
I've never used it, and with zones and other Solaris developments, it may no
longer be appropriate.

Tim Bradshaw

unread,
Aug 27, 2007, 5:10:04 AM8/27/07
to
On Aug 26, 9:57 pm, Geoff Lane <n...@buffy.sighup.org.uk> wrote:
>
> It is very careful not to leave the system in an unstable state.

I'm sure it is. But it could write things to paper tape faster than
it runs.


>
> Don't let uninstalled patches build up :-) With smpatch and updatemanager,
> you can apply most patches to a live system.

That is not an option for any kind of change controlled environment
(neither one) unfortunately.

> Casper Dik used to maintain a fastpatch utility which was much faster than

> the official method. Seeftp://ftp.science.uva.nl/pub/solaris/auto-install/


> I've never used it, and with zones and other Solaris developments, it may no
> longer be appropriate.

Thanks, I'll look at that. I'm not actually sure that patchadd is
appropriate for machines with zones :-). I'm kind of hoping that they
will fix live upgrade again: it is a good answer, but you can't
realistically use it for 9-10 upgrades (won't apply patches) or 10
with zones. I guess almost no one uses it (and the implementation is
probably a horror) so it must have seemed like something it was OK to
not keep working. (Of course the people who *do* use it probably
correlate well with those who buy large numbers of high-end systems,
but that kind of argument is a bit subtle...)

--tim

Ian Collins

unread,
Aug 27, 2007, 5:28:08 AM8/27/07
to
Tim Bradshaw wrote:
>
> Thanks, I'll look at that. I'm not actually sure that patchadd is
> appropriate for machines with zones :-). I'm kind of hoping that they
> will fix live upgrade again: it is a good answer, but you can't
> realistically use it for 9-10 upgrades (won't apply patches) or 10
> with zones.

It should, it has worked in Express for ages, so it should work for U3
and U4.

--
Ian Collins.

Tim Bradshaw

unread,
Aug 27, 2007, 7:23:57 AM8/27/07
to
On Aug 27, 10:28 am, Ian Collins <ian-n...@hotmail.com> wrote:
> Tim Bradshaw wrote:

> It should, it has worked in Express for ages, so it should work for U3
> and U4.

Not in u3. Dunno about u4 yet, obviously (though there are rumours).
Presumably the issue is that the whole boot-the-zone-to-patch it thing
is not going to work too well if that zone is on a BE which is not
itself active.

Daniel Rock

unread,
Aug 27, 2007, 7:28:07 AM8/27/07
to
Tim Bradshaw <tfb+g...@tfeb.org> wrote:
> Is there any simple reason why patching Solaris takes *so* long?

Problematic are jumbo patches, and with Solaris 10 patches to
Python, PostgreSQL, etc. if they upgrade the package to a newer release

For instance a PostgreSQL patch has to remove all files in
/usr/share/doc/pgsql/8.1.x and other locations (almost 1000) via removef
manually. Each invocation of removef rewrites /var/sadm/install/contents
completely. This file is on my machine almost 30MB large. So during
patching of PostgreSQL over 20GB is written just to
/var/sadm/install/contents.

You can try the following at the risk of corrupting the package database
(which could be manually correctable) if the machine crashes during
patchadd:

cp -p /var/sadm/install/contents /tmp/contents
mount -F lofs /tmp/contents /var/sadm/install/contents

[patchadd]

umount /var/sadm/install/contents
cp -p /tmp/contents /var/sadm/install/contents

Patching should now be faster since everything written to
/var/sadm/install/contents should now be written to tmpfs.


--
Daniel

Tim Bradshaw

unread,
Aug 27, 2007, 9:30:21 AM8/27/07
to
On Aug 27, 12:28 pm, "Daniel Rock" <v200...@deadcafe.de> wrote:

>
> For instance a PostgreSQL patch has to remove all files in
> /usr/share/doc/pgsql/8.1.x and other locations (almost 1000) via removef
> manually. Each invocation of removef rewrites /var/sadm/install/contents
> completely. This file is on my machine almost 30MB large. So during
> patching of PostgreSQL over 20GB is written just to
> /var/sadm/install/contents.

Ah that makes sense. They need some kind of transaction, so they can
batch up changes and apply them all at once (with a log so if
something dies they can roll the log in).

--tim


Ian Collins

unread,
Aug 31, 2007, 7:52:24 PM8/31/07
to
It is officially supported in U4:

http://docs.sun.com/app/docs/doc/817-0547/gdstw?a=view

--
Ian Collins.

0 new messages