Again, we have no knowledge of your system. As for information on updating, study the Upgrade Guide.

I am sorry, I didn't describe my question clearly.

I mean I want build a OpenBSD package server that only provide service for me.
I am not a stingy guy, but in China most people run funny Windows , only a few Linux user around me and I don't like Linux distributions any more, so I don't think I have to share this server with others.
When I want install some package I can use my server instead of downloading packages from other OpenBSD package server.
I think that can save time and is more reliable.
Sometimes "pkg_add -u" stuck in somewhere, because no reliable package server is available.

My plan is run OpenBSD as desktop, run FreeBSD as computation platform and build a server that provides:

I also build a number of small ports, but in no way do I build all applications found in the ports tree. When installing OpenBSD, I create a 4GB partition for /usr/ports/ & a 60GB partition for /usr/ports/pobj/. So far, these sizes have been sufficient.

Given that building huge applications such as OpenOffice can take more than a day with a ~1.5GHz i386 processor, faster hyperthreaded Xeon processors will build more quickly, but they cost more. A somewhat related thread can be found at the following:

OpenBSD's /src tree (typically saved locally into /usr/src...) fits easily into a 2GB partition for the tree & another 2GB partition for /usr/obj is more than enough for disk space for building OpenBSD (I also create a 2GB partition for /usr/xenocara & another 2GB partition for /usr/xobj...). If you have other CVS repositories you wish to maintain, disk usage will obviously go up.

It is very easy to stress out about partition sizes. jggimi frequently points newbies to install new systems into one very large / partition until they have had enough experience to understand their own usage patterns. You may find this easier. The numbers I give above are numbers which work for me & what applications I build for myself.

I would also be remiss if I don't mention that carefully studying Section 5 & Section 15 of the FAQ will be highly worth your time. As for manpages, studying release(8) & ports(8) are both highly recommended.

A friend of mine has a small network of OpenBSD platforms for his organization -- routers and firewalls, primarily, and a few desktops. He has a dedicated build machine, and he builds -current packages approximately once per month for his architecture, which I believe is i386. To the best of my recollection, he told me that a "make package" of the entire ports collection takes somewhere between three and four days on his build server.

Most -release/-stable users should never need to build ports, the exception being only those for which packages are not available.

Those -current users on the popular architectures may be able to reduce their port-building efforts by using pre-built "snapshot" packages that are made available for convenience. Usability will depend on how close the packaging is to the particular -current system they are using, per FAQ 15.4.1.

I build portions of the ports tree for my live media offerings, and that only because building them is necessary. It takes days and days, just to build the software to provision the various workstation environments on two architectures. These port builds easily fit within 25GB or so for each architecture, but that is because I use $BULK, allowing for object erasure as the builds proceed, and there is no individual application as large as ocicat's JDK build, which needs, I think, something on the order of 40-50GB of free space for the objects and source.

In any situation where there are multiple machines, maintaining a local package repository is a great idea. Aside from saving all that CPU for building from ports, or building kernel and userland for patches, the reduced bandwidth (and increased update speeds) with a local repo are a huge benefit.