Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 May 1995 17:21:45 +0800 (CST)
From:      Brian Tao <taob@gate.sinica.edu.tw>
To:        FREEBSD-QUESTIONS-L <freebsd-questions@FreeBSD.org>
Subject:   Heavy HTTPD serving on 2.0-950412
Message-ID:  <Pine.BSI.3.91.950505165249.8963U-100000@aries.ibms.sinica.edu.tw>

next in thread | raw e-mail | index | archive | help
    As some of you may have seen on comp.unix.bsd.freebsd.misc and
elsewhere, I've been pounding on Apache 0.62 and my FreeBSD box to see
how well it holds up as an extremely loaded Web server.  The full
results are at http://140.109.40.248/~taob/fbsd-apache.html for those
interested.  I tried a few more tests since then, and a couple of
questions have popped up.

    One is the "mb_map_full" problem.  I *know* I've seen this
question before, but I didn't save it, and now I need to know how to
increase the number of buffers (if in fact that is the problem).  I
get this message when trying to max out the number of simultaneous
HTTP requests.  The script I run contains the following line repeated
100 times:

lynx -source -dump http://140.109.40.248/Bench/test.html > /dev/null &

    Yes, it is horribly inefficient to use Lynx in this capacity, but
that's besides the point.  ;-)  If I run this script from a Sparc20 on
the local Ethernet net, the load on my server will jump, but
eventually all the requests are served (test.html is a fairly small
file, only a few K in length).  However, if I try this from a machine
in Toronto (20 hops away, through several gateways, slowest link being
the 256kbps trans-Pacific link), not a minute passes before I receive
"mb_map full" kernel messages.  Not only that, but I immediately lose
all contact with the network, and I have to reboot to recover.  It's
like someone unplugged my Ethernet cable.  Why would this happen in
one case but not in the other?

    As my testing continued, I ran into another problem with the
netstat display:

Active Internet connections
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp        0      0  aries.8080             gate.sinica.edu..60698 TIME_WAIT
tcp        0      0  aries.8080             ibms.4470              TIME_WAIT
tcp        0      0  aries.8080             ibms.4469              TIME_WAIT
tcp        0      0  aries.8080             gate.sinica.edu..60697 TIME_WAIT
tcp        0      0  aries.8080             ibms.4467              TIME_WAIT
tcp        0      0  aries.8080             gate.sinica.edu..60696 TIME_WAIT
tcp        0      0  aries.8080             ibms.4466              TIME_WAIT
tcp        0      0  aries.8080             gate.sinica.edu..60695 TIME_WAIT
tcp        0      0  aries.8080             ibms.4465              TIME_WAIT
tcp        0      0  aries.8080             gate.sinica.edu..60691 TIME_WAIT
tcp        0      0  aries.8080             ibms.4464              TIME_WAIT
tcp        0      0  aries.8080             gate.sinica.edu..60690 TIME_WAIT
tcp        0      0  aries.8080             ibms.4463              TIME_WAIT
tcp        0      0  aries.8080             gate.sinica.edu..60689 TIME_WAIT
tcp        0      0  aries.8080             ibms.4462              TIME_WAIT
tcp        0      0  aries.8080             gate.sinica.edu..60687 TIME_WAIT
tcp        0      0  aries.8080             ibms.4461              TIME_WAIT
tcp        0      0  aries.8080             gate.sinica.edu..60683 TIME_WAIT
tcp        0      0  aries.8080             ibms.4460              TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  aries.8080             gate.sinica.edu..60682 TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  14.0.115.3.5888        32.0.0.0.*             TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  76.1.5.0.5888          68.0.0.0.*             TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  76.1.5.0.5888          88.0.0.0.*             TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  76.1.5.0.5888          100.0.0.0.*            TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  14.0.126.3.5888        32.0.0.0.*             TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  136.75.127.240.5888    144.254.114.240.*      TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  8.16.128.240.18765     144.254.114.240.*      TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  136.162.117.240.5888   16.51.121.240.*        TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  136.115.122.240.5888   144.250.118.240.*      TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  76.1.5.0.5888          csc-net.csc.com.*      TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  0.56.88.240.5888       72.1.0.0.60666         TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  14.0.14.4.5888         32.0.0.0.*             TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  43.0.1.0.1024          4.0.0.0.*              TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  1.1.91.1.*             32.0.0.0.*             TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
netstat: kvm_read: kvm_read: Bad address
tcp        0      0  0.112.85.240.1280      40.0.0.0.60666         TIME_WAIT
netstat: kvm_read: kvm_read: Bad address
^C

    Both gate and ibms are two Sparcs running the clients, but what
about all those other entries that are flanked by "kvm_read:..."
errors?  Running netstat a second time shows a normal output without
those bogus IP addresses.  The two Suns had been sending one HTTP
request every five seconds to port 8080 for the past 10 hours (my real
Web server was still running on port 80).  I came into the office in
the morning to check on it, and that's when I pulled up netstat.
-- 
Brian ("Though this be madness, yet there is method in't") Tao
taob@gate.sinica.edu.tw <-- work ........ play --> taob@io.org




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSI.3.91.950505165249.8963U-100000>