delphij's Chaos


30 Mar 2004

Some comments on FreeBSD 5.2 usage

I personally manages several FreeBSD 5.2-CURRENT instances, and here are my experiences.

FreeBSD 5.x contained many new features, technologies. Currently, it’s clear that 5.2-CURRENT is more stable and have a better performance than 5.2(.1)-RELEASE. Therefore, if you are looking to install a new (of course, and ONLY if you choose 5.x series!) computer, the best solution would be 5-CURRENT.

Before FreeBSD 5.2-RELEASE, dynamically linked root has been default. This meant a drastically reduced / space requirement. Personally, I would suggest 128M for your / slice, and if you can have a smaller one, do what you want because this will make swap slice near to the outside tracks, and hence better performance. If possible, split your swap on multiple disks.

Running SoftUpdates with sysinstall does not seemed to be a wise idea. During install, every file systems are mounted asynchonously, and therefore, no SoftUpdates is actually needed during install. You may want to turn it on after your first boot. In my experience, disabling SoftUpdates in sysinstall’s newfs option will increase the possiblity of success.

Do not install anything until they are necessary! FreeBSD’s ports tree updates much faster than its code because third party developers updates their software from time to time. COMPACT_4X? Only when it asks you to do so! Personally speaking, I will do a pkg_delete -a right after a brand new minimum installation, and then pkg_add -r cvsup-without-gui, and resync my src tree and ports tree, then install everything from ports.

Previously, Zend’s products released only FreeBSD 4.x and you need to have COMPAT_4X enabled in your /etc/make.conf in order to make it run. However, fortunatelly, some days ago they have released a version in FreeBSD 5 binary. This change will permit us to run php applications much faster and more secure, because COMPAT_4X brings not only compability, but also security issues :-)

Currently, even -O2 is not officially supported for compiling kernels and world. So, do not add these options except you are ready to submit backtraces as well as patches to address them.

** READ UPDATING carefully. This is necessary for tracking -CURRENT, and a good habit if you track -STABLE. Before you start your make world kernel build, DO REVIEW IT!!

On SMP/HTT machines, using ULE as your scheduler will have great performance gain.

You need libmap.conf! Map all libc_r related calls to libthread, or you will be unhappy because mixture of libthread will kill you silently :-)