Open-Sourcing Traffic Server: 700k lines of code, 9 months
developer.yahoo.net
developer.yahoo.net
nginx 75,214
lighttpd 84,852
apache 294,002
squid 283,417
(according to ohloh.com)
I am not sure where ohloh is getting its numbers, but here are the directory stats from slocount, for the recent httpd 2.3.5-alpha:
SLOC Directory SLOC-by-Language (Sorted)
95386 modules ansic=95095,lex=191,yacc=100
27977 server ansic=27977
11362 build sh=9980,awk=657,perl=433,pascal=292
7248 support ansic=7076,perl=92,sh=80
3250 include ansic=3250
1622 os ansic=1622
1094 test ansic=843,sh=230,perl=21
159 top_dir sh=159
If you were to strip out everything 'not needed' for a basic server, I expect you would end up 'running' about 40k LOC, which I think is 'inline' with others like varnish/lighttpd/etcapache's problem isn't bloat, its architecture and bad sysadmins. it was designed from 1994 for prefork-based systems, and sysadmins have been configuring it since then, or not configuring it. Yes, it will use lots of ram when you embed Python and PHP in it, so don't do that.
mini-rant over, and a disclaimer: i am an httpd committer.
I guess one of the issues is that if you're using it with PHP/Python/etc, those expect to be in their own thread/process, so using more of a scalable async approach in apache isn't always possible.
I agree @ architecture + misconfiguration.
I know people are reverse proxying to Apache with nginx or similar for similar reasons.
Also, the long term goal is to remove more from the TS "core", and move that out to plugins, so the core will be sleeker. Of course, we'll also add on new features, but hopefully many of those can be implemented as plugins as well.
It has total disk cache persistence, so it won't lose any cache if the server crashes, traffic server crashes, unlike varnish.
If you've got cache spread over multiple spindles and one of the spindles dies while in production, it'll just keep on going, skipping that spindle. Squid does this, varnish does not.
It does run on linux. Actually it's what it was built on, originally, IIRC.
I have used TrafficServer (at Yahoo) and I'm willing to bet that it will overtake both squid and varnish as time goes on.
http://cwiki.apache.org/confluence/display/TS/Traffic+Server
Which also yields:
http://wiki.apache.org/incubator/TrafficServerProposal
http://incubator.apache.org/projects/trafficserver.html
The Apache "champion" is Doug Cutting, of Hadoop fame, so it seems to have street cred.
The plugin architecture looks like it'll make it pretty flexible, but it'll have to be pretty special to beat Varnish in terms of performance.