Weird performances: -CURRENT vs 5.2.1
blackend at freebsd.org
Thu Aug 19 00:26:23 PDT 2004
On Wed, Aug 18, 2004 at 05:05:13PM -0400, Mike Tancsa wrote:
> As someone who is also going to start testing the waters with
> RELENG_5 on some non critical production servers (e.g. one of n spam and av
> scanning machines), I take it you mean,
> NOTE TO PEOPLE WHO THINK THAT FreeBSD 5.x IS SLOW:
> FreeBSD 5.x has many debugging features turned on, in
> both the kernel and userland. These features attempt to detect
> incorrect use of system primitives, and encourage loud failure
> through extra sanity checking and fail stop semantics. They
> also substantially impact system performance. If you want to
> do performance measurement, benchmarking, and optimization,
> you'll want to turn them off. This includes various WITNESS-
> related kernel options, INVARIANTS, malloc debugging flags
> in userland, and various verbose features in the kernel. Many
> developers choose to disable these features on build machines
> to maximize performance.
> Are there more details somewhere as to what exactly to turn off and tweak ?
It's not really documented. To sum up, you have to remove these lines
from your kernel configuration file:
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
# Debugging for use in -current
options KDB # Enable kernel debugger support.
options DDB # Support DDB.
options GDB # Support remote GDB.
options INVARIANTS # Enable calls of extra sanity checking
options INVARIANT_SUPPORT # Extra sanity checks of internal struct
ures, required by INVARIANTS
options WITNESS # Enable checks to detect deadlocks and cycles
options WITNESS_SKIPSPIN # Don't run witness on spinlocks for spe
In fact INVARIANTS and WITNESS related lines are the more important to
maximize performance, the others lines do not really change things.
And then do a:
ln -s aj /etc/malloc.conf
This one is important too, by default malloc routines uses AJ flags (be
careful with the case) under -CURRENT, even if you don't have any
malloc.conf file, look at malloc(3) manual page for more details.
More information about the freebsd-current