Brad Fitzpatrick (brad) wrote,
Brad Fitzpatrick

Perlbal update

New features in Perlbal:

-- limits connects-in-progress to backend nodes, for a number of reasons. it helps performance a lot when the backends are hurting. perlbal does a better job serializing a lot of connections over a slow backends than a mass TCP flood does, with all its increasing timeouts. (I still need to read my TCP/IP book and figure this out more, but I seem to have fixed it, even if I don't totally understand it.)

-- web-based stats (listens on same port as command-line management, but detects start of HTTP request). all web-based stats are also available from the command-line, since they share the same backend code.
  498 Perlbal::BackendHTTP
    1 Perlbal::ClientManage
  541 Perlbal::ClientProxy
    1 Perlbal::StatsListener
    3 Perlbal::TCPListener

Aggregate write buffer: 1284.3k
            Open files: 3

  fd    age
    3    13s Perlbal::BackendHTTP: open to localport=58873; client=193
    4   792s Perlbal::StatsListener: open
   10   792s Perlbal::TCPListener: open: listening on for web_proxy
   11   792s Perlbal::TCPListener: open: listening on for web_userpics
   12   792s Perlbal::TCPListener: open: listening on for mgmt
   13     3s Perlbal::BackendHTTP: open to localport=60559; client=842
   14     4s Perlbal::ClientProxy: open to
   15     1s Perlbal::ClientProxy: open to
   16     3s Perlbal::ClientProxy: open to
   17     7s Perlbal::ClientProxy: open to
   18     7s Perlbal::BackendHTTP: open to localport=59898; client=682
   19     8s Perlbal::ClientProxy: open to
   20     1s Perlbal::BackendHTTP: open to localport=60875; bored

-- "connect-ahead", where perlbal will get a configurable number of backend connections ready ahead of time, in anticipation of incoming client requests. just put it live on LJ... seems to kick ass, though I'll need to do some tuning to see where the sweet spots are, and how to make it auto-adjust.

-- bug fix: was rewriting client's HTTP version to 1.0, even when it was 1.1. now LiveJournal feels confident about sending gzipped content again, and Perlbal's TCP_CORKing shines: 10-12% less bandwidth used than mod_proxy, due to less total packets being sent (since they're entirely full) and less wasted packet headers.

Thus conclude's today's advertisement of Perlbal. You may now return to your regularly scheduled programming.

  • Doing Hos is Hard Work

    Etch-a-Sketch doesn't involve much hill climbing. GPS-a-Sketch in San Francisco does, however: Merry Christmas from me and…

  • Pot. Kettle. Black.

    Article on LOL and OMG and such creeping into student essays... "Everything is shorthand," Jeff Littwin, lead English teacher at Roosevelt High…

  • Das deutsches Wort des Tages

    Geschlechtsverkehr Aw, German compounds, how I love thee. (learned from watching The Lives of Others, with Dan. good movie.)

  • Post a new comment


    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.