Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Feb 2003 16:19:01 -0600
From:      Jon Dugan <jdugan@ncsa.uiuc.edu>
To:        freebsd-net@freebsd.org
Subject:   Web100 for FreeBSD
Message-ID:  <20030219221900.GA2596@ncsa.uiuc.edu>

next in thread | raw e-mail | index | archive | help
  I am funded to do the FreeBSD implementation of the Web100[1] kernel
  intrumentation set (KIS) and already  have a small portion of the KIS
  implemented.  I have several questions and since I have very little
  kernel programming experience I would appreciate any input that the more
  experienced folks are willing to offer.

  My goal with this code is to get it accepted into the FreeBSD tree.  So any
  advice or critque of implementation or style is actively solicited.

  The Linux implementation exposes the KIS variables through the /proc
  filesystem.  I have chosen to use the sysctl interface for my initial
  implementation.  So far this is working out well, I am reading 4 variables
  about each connection via sysctl.  Is sysctl the right way to get this
  information?  We may poll some of these variables on a second or sub second
  interval.
  
  In order to tune a TCP connection it will be necessary to write to some of
  the sysctl OIDs.  AFAIK only root can write to sysctl.  I can see two
  alternatives to solving this problem:  1) using a proxy daemon which runs as
  root to handle the updates or 2) add a permissions system to sysctl.  Option
  2 seems like quite a lot of work and I'm not certain it is generally useful.
  Any thoughts?

  We are interested in receiving asychronous notification of events within a
  particular TCP session in userland.  I am planning to use the kqueue
  mechanism to provide this.

  Patches relative to 5.0-RELEASE are available at:

    http://rivendell.ncsa.uiuc.edu/~jdugan/web100bsd/

  In truth there isn't much to the patches yet, but it demonstrates the
  direction I have taken thus far.

  1. Some background Web100:
  
    The Web100 project is concerned with improving TCP performance for typical
    TCP sessions.  As we all know getting TCP to perform well over long, fat
    pipes tends to require quite a bit of tuning.  Web100 is an effort to
    automatically tune TCP connections.  To that end Web100 has developed a
    TCP Extended Statistic MIB to define what instruments in a TCP stack are
    useful for understanding the behavior of TCP sessions.  The KIS is the
    implementation of this MIB for a particular TCP implementation, currently
    the only fully developed KIS is for Linux.  With the information exposed
    via the KIS the TCP session can be automatically tuned by a user space
    process.  Information gleaned from the KIS is also useful to diagnosing
    many common problems with TCP performance.  The Web100 website has further
    information, including the code for the Linux implmentation and an IETF
    draft of the TCP Extended Statistic MIB.  http://www.web100.org/

Jon
-- 
Jon Dugan             |  Senior Network Engineer, NCSA Network Research
jdugan@ncsa.uiuc.edu  |  269 CAB, 605 E Springfield, Champaign, IL 61820
217-244-7715          |  http://www.ncsa.uiuc.edu/~jdugan/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




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