[Success Story] amd64 + squid + apache + MySQL...

Sean Chittenden sean at gigave.com
Wed Feb 9 13:03:36 PST 2005


Hey, just thought I'd pass along a quick note for a 5.X/amd64 success
story.  Given those who have had success with this haven't spoken up
or said as much publicly, let me buck the trend and spread some good
news to those interested in listening.

Athlon64 3000 (UP), em0, 2GB of RAM, 3Ware 9000 SATA RAID controller
Squid 2.5.7, Apache/mod_php 1.3, MySQL 4.1

The above is yielding (at peak times) ~85Mbps with ~5K
connections.... or more ('ya got to love fluctuating real numbers):

# netstat -na | grep ESTABLISHED | wc -l
    6783
# netstat -I em0 -w1 | head -3
            input          (em0)           output
   packets  errs      bytes    packets  errs      bytes colls
      6968     0    2060646       9686     0   11175649     0
# w
12:44PM  up 1 day, 17:05, 1 user, load averages: 3.67, 3.66, 3.29
USER             TTY      FROM              LOGIN@  IDLE WHAT
sean             p0       foo.example.com   8:21AM     - w

So there 'ya go: a real world amd64 and RELENG_5 success story.  I
know there are other folks out there doing more, but, still... what
should be a reasonably impressive data point.  From our perspective,
more hardware is needed for redundancy's sake, but, make no mistake,
we couldn't be more pleased with the end results and the process by
which we got there (my only gripe was the inability to update the
firmware for the 3ware RAID card, for some reason I couldn't flash the
controller, though it's not too critical, IMHO.  It's one of those,
"it would've been nice to have done before going live" kinda things).
I will say, however, that we shocked the hell out of the client when
we told them that post-move, they were pushing 2-3x their earlier
traffic because we weren't capping them and/or they have a higher
ceiling with the new hardware (we spec'ed the hardware for 30Mbps).

Closer to the advocacy/trolling side (please, do not, under any
circumstances reply to the list regarding this unless you have a
success story of your own!  If you fail this test, I will moderate
future postings by you to this list), this particular client was
running on a 10 machine Linux Virtual Server setup and was tipping
frequently.  I don't mean to suggest that this can always be done (I
know it can't, but I also don't want to deter people from trying),
but, the steady hand of FreeBSD under load has been immensely
impressive to all parties involved on this side who watched it happen.
Blindly turning up an amd64+RELENG_5 system without any load testing
in advance... very convincing to watch happen, IMHO.

Off list, if someone wants to give me pointers for getting squid 3.0
compiled/running (PRE3 wouldn't compile), or has any good/bad news on
its kqueue(2) support, I'm all ears.  select(2) is starting to be a
problem under higher connection counts and is adding unnecessary
latency.  I'm be curious to know if anyone has made or is aware of a
thread safe select(3) function that uses kqueue(2) on the backend.
Something that can be dynamically loaded as a shared object which is
invoked in place of select(2) and shoehorned in for legacy software.

FreeBSD.  Silent workhorse no more.  -sc

-- 
Sean Chittenden
sean at GigAve.com


More information about the freebsd-performance mailing list