Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Aug 2004 15:31:11 +0800
From:      sam <sam.wun@tech-21.com.hk>
To:        Marc Fonvieille <blackend@freebsd.org>
Cc:        Mike Tancsa <mike@sentex.net>
Subject:   Re: Weird performances: -CURRENT vs 5.2.1
Message-ID:  <4124573F.50403@tech-21.com.hk>
In-Reply-To: <20040819072614.GA19508@abigail.blackend.org>
References:  <20040818200530.GA88370@abigail.blackend.org> <20040818205029.GA48028@xor.obsecurity.org> <6.1.2.0.0.20040818170232.05773880@64.7.153.2> <20040819072614.GA19508@abigail.blackend.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Marc Fonvieille wrote:

>On Wed, Aug 18, 2004 at 05:05:13PM -0400, Mike Tancsa wrote:
>  
>
>>Hi,
>>        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
>ed
>
>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 looks like a trick. "aj" is actually not existed in the system.
You meant created a malloc.conf pointing to a non-exist aj for the 
improvment of the malloc operation?

root@fbsd [3:31pm] [...i386/conf]# ls -l /etc/malloc.conf
lrwxr-xr-x  1 root  wheel  2 Aug 19 15:31 /etc/malloc.conf@ -> aj
root@fbsd [3:34pm] [...i386/conf]#

root@fbsd [3:34pm] [...i386/conf]# ls -l /etc/aj
ls: /etc/aj: No such file or directory
root@fbsd [3:34pm] [...i386/conf]#

Sam

>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.
>
>Marc
>  
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4124573F.50403>