FreeBSD-2.8 Tuning

The following steps were used to tune FreeBSD-2.8 for the first IRCache bake-off.

  • Increase max memory parameters in kernel config file
    options         "MAXDSIZ=(512*1024*1024)"
    options         "DFLDSIZ=(128*1024*1024)"
    
  • Increase max mbuf clusters in kernel config file
    options         "NMBCLUSTERS=40960"
    
  • Disable TCP delayed Acks in kernel config file
    options         TCP_ACK_HACK
    
  • Increase max file descriptors in /sys/conf/param.c
    #define MAXFILES (16384)
    int     maxfilesperproc = 12288;
    
  • Decrease MSL to 3 seconds in /usr/src/sys/netinet/tcp_timer.h
    #define TCPTV_MSL       ( 3*PR_SLOWHZ)          /* max seg lifetime (hah!) */
    
  • Apply this patch to /usr/src/sys/kern/uipc_socket.c to avoid packet fragmentation at 100 byte boundary.
    ===================================================================
    RCS file: /home/ncvs/src/sys/kern/uipc_socket.c,v
    retrieving revision 1.40
    retrieving revision 1.41
    diff -p -u -r1.40 -r1.41
    --- src/sys/kern/uipc_socket.c  1998/05/15 20:11:30     1.40
    +++ /home/ncvs/src/sys/kern/uipc_socket.c       1998/07/06 19:27:14     1.41
    @@ -491,6 +491,7 @@ restart:
                                    mlen = MCLBYTES;
                                    len = min(min(mlen, resid), space);
                            } else {
    +                               atomic = 1;
     nopages:
                                    len = min(min(mlen, resid), space);
                                    /*
    
  • Increase ephemeral port range
    	/usr/sbin/sysctl -w net.inet.ip.portrange.last=30000
    
  • Increase SOMAXCONN
    	/usr/sbin/sysctl -w kern.somaxconn=1024
    
  • Set limits in /etc/login.conf
    default:\
            :cputime=infinity:\
            :datasize-cur=infinity:\
            :stacksize-cur=infinity:\
            :memorylocked-cur=infinity:\
            :memoryuse-cur=infinity:\
            :filesize=infinity:\
            :coredumpsize=infinity:\
            :maxproc-cur=infinity:\
            :openfiles-cur=infinity:\
            :openfiles-max=12288:\
            :priority=0:\
            :requirehome@:\
            :umask=022:\
            :tc=auth-defaults:
    
  • Disable cron
  • Disable inetd
    $Id: logistics.sml,v 1.13 1999/02/19 19:42:22 wessels Exp $