Slashdot Mirror


Scaling Server Performance

An anonymous reader writes "When Ace's Hardware's article Hitchhiker's Guide to the Mainframe was posted on Slashdot, they got 590,000 hits and over 250,000 page requests during one day. This kind of traffic caused only a 21% average CPU load to their Java-based web server, which is powered by a single 550MHz UltraSparc-II CPU. In their newest article, Scaling Server Performance, Ace's Hardware explains how this was possible."

242 of 341 comments (clear)

  1. Guess... by DerOle · · Score: 1

    ...how many hits they will get this time ?

    1. Re:Guess... by jacquesm · · Score: 2, Interesting
      I don't get why this is such a big deal, really.


      If you limit yourself to static stuff then you can cram any amount of traffic out of very limited boxes.


      Even google does everything they can to cache stuff and turn dynamic requests into static ones, and they actually have a reason (lotsa traffic, complicated requests).


      The fact that you can use java to write speedy code doesn't prove a thing either, it only says that it is now no longer a bottleneck.


      You can probably saturate a decent sized pipe using -- aaarghh -- VB or something asinine like that as long as you do 'pictures and pages'.

    2. Re:Guess... by SpaceLifeForm · · Score: 1
      Apparently too many. Now over 40 minutes after your post, and 5 minutes after I clicked on the link, I'm still waiting. Previewing now, still waiting. Another minute, it finished. At least it didn't drop any packets.

      The stats from the article indicate not overloaded. Therefore, they must have slow bandwidth.

      --
      You are being MICROattacked, from various angles, in a SOFT manner.
    3. Re:Guess... by ttfkam · · Score: 1

      The big deal is that there are still dozens of sites a year that haven't yet learned this lesson and are trounced by a Slashdotting.

      The language means nothing. They are talking about software architecture issues.

      --

      - I don't need to go outside, my CRT tan'll do me just fine.
  2. 6 per second. by blair1q · · Score: 3, Insightful

    Are we supposed to be impressed with a computer that can serve 8 hits and 4 pages per second?

    1. Re:6 per second. by insanecarbonbasedlif · · Score: 1

      Our traffic for the day totaled over 590,000 requests (hits), with over 250,000 of those being requests for pages. Requests peaked at 677 per minute, which of course includes everything (images, pages, files, etc.). The peak number strictly for article pages was 235 per minute.

      Technically, 11.28 per second. Post you site, let's see if it can handle the Slasher...

      --
      Just because I doubt myself does not mean I find your position compelling.
    2. Re:6 per second. by jj_johny · · Score: 1

      Or maybe you should look at it as they used an average of 21% of 550,000,000 cycles per second to serve 4 pages. = 115,500,000 cycles for 4 pages or 28,000,000 cycles per page. WOW! With performance like that I am worried.

    3. Re:6 per second. by BlueRibbon · · Score: 1

      It isn't just 8 hits per second, but about 12 at peak times.
      The impressive part of the article is the low CPU usage, but we all know that Java is big when it comes about scalability.
      I'm no expert, but 11 hits/s on a single UltraSparc-II@550 it's not a miracle, but it's quite good! It's useful to learn something from this when you're in need to manage resources, everyday.

      --
      KISS - Keep It Simple, Stupid!
    4. Re:6 per second. by tevman · · Score: 1

      Are we supposed to be impressed with a computer that can serve 8 hits and 4 pages per second?
      no, i wouldnt be impressed with that.

      however, i doubt that all the hits were spread out like that.

      More likely most of the hits came at once, and the rest was low use time.

      --
      sig is broken try again tomorrow
    5. Re:6 per second. by targo · · Score: 1

      Are we supposed to be impressed with a computer that can serve 8 hits and 4 pages per second?

      Sounds kinda weak to me too. I am currently working on a web server application that's supposed to serve highly dynamic, personalized pages (perhaps comparable to slashdot). Our perf goal is 200 pages/sec. Of course, it would be on bigger hardware but I think we could easily beat the number mentioned in the article on a 500Mhz PC.

    6. Re:6 per second. by mrtroy · · Score: 3, Interesting

      perhaps. perhaps id be impressed if their cpu could keep up with the hits IF THEIR BANDWIDTH COULD KEEP UP
      *REQUEST TIMED OUT*
      My 1ghz server with 3 terrabytes of ram can handle any traffic you can throw at it!!! Now to upgrade that 56k....

      Burning karma :(

      --
      [I can picture a world without war, without hate. I can picture us attacking that world, because they'd never expect it]
    7. Re:6 per second. by ParamonKreel · · Score: 1

      Take your average page size, about 14KB, that's 14,000 Bytes... take 28,000,000 / 14,000 bytes, that's about 2000 ops a byte if you just consider pushing the file from the disk out of the network pipe. Not put in context switchign overhead, network overhead, os overhead, that's not too bad at all. I mean it's not like there's a direct 1 instruction call to move 1 byte from my disk/database to your network card.

    8. Re:6 per second. by Bert64 · · Score: 1

      No, that graph looks pretty indicative of a slashdotting... an initial burst when the story is first posted, and then a steady stream of hits while the story is still on the front page.. which dies down once it`s been relegated to "yesterday`s news"

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
  3. Time to break the record? by FelixCat · · Score: 1, Funny

    Now if they could use the same technology to create a web surfing client which generates that many hits with the same CPU load. Then you could put them together on the same network, and ....

  4. How they did it... by darkov · · Score: 4, Funny

    they got 590,000 hits and over 250,000 page requests during one day. This kind of traffic caused only a 21% average CPU load ... they didn't respond to any of them.

    1. Re:How they did it... by Anonymous Coward · · Score: 2, Informative

      page request != hit

  5. oh, the possibilities by pummer · · Score: 1

    if they used this thing to host a pr0n server, it couldn't get farked! Oh, how this would help in the quest of kitten-killing.

  6. So the article on preventing the /. effect ... by burgburgburg · · Score: 5, Funny
    will be tested to see if it's meaningful. I like that. That is definitely putting your money where your mouth is.

    Of course, it is incumbent upon all of us to rush out and try to the link to the article. And some of us to actually read it as opposed to just reading the title.

    1. Re:So the article on preventing the /. effect ... by supremebob · · Score: 1

      Obviously, Slashdotters didn't visit the site enough to overload their server last time. By posting a cocky "Our servers can handle a slashdotting with ease!" article like this, however, they have pretty much guaranteed a MUCH larger response this time around.

      Also, considering that the site is down 30 minutes after the posting of this article, it seems that Ace's server configuration isn't as good as he thought it was.

    2. Re:So the article on preventing the /. effect ... by DLG · · Score: 1

      Ironically, I started reading the article, but it looks like it has been Slashdotted.:)

    3. Re:So the article on preventing the /. effect ... by Enigma2175 · · Score: 1
      So the article on preventing the /. effect ... will be tested to see if it's meaningful. I like that. That is definitely putting your money where your mouth is.

      Yep. Looks like they really put their money where there mouth is. When I try to access the page I receive the infamous "The document contains no data". They are already down and the article will be on the /. front page for another day. Reading an article on server scaling from these guys is like taking a class in conflict resolution from Saddam and GWB.

      --

      Enigma

    4. Re:So the article on preventing the /. effect ... by LilGuy · · Score: 1

      They may have kept this in mind before creating this new article. The first page should be the smallest if they took into account that slashdotters would be "reading" it. :P

      --

      You're nothing; like me.
    5. Re:So the article on preventing the /. effect ... by hondo77 · · Score: 3, Funny

      At least you got to start reading it. It wouldn't even come up for me. On the bright side, I now know I don't need to read it...

      --
      I live ze unknown. I love ze unknown. I am ze unknown.
  7. <blows horn> by Anonymous Coward · · Score: 5, Funny
    This kind of traffic caused only a 21% average CPU load to their Java-based web server, which is powered by a single 550MHz UltraSparc-II CPU. In their newest article, Scaling Server Performance, Ace's Hardware explains how this was possible.
    Battlestations!

    SLASHDOT THEM AGAIN!!!
  8. Re:More. by Anonymous Coward · · Score: 1, Funny

    I'm on it

  9. only 600, 000 per day? by vanyel · · Score: 4, Informative

    When I was benchmarking web servers in *1994*, servers could handle 100,000/hr, which is only about 30/sec. You may need a T3 to handle the bandwidth, but any server that can't handle it today is misconfigured.

    1. Re:only 600, 000 per day? by fdicostanzo · · Score: 1
      These were generally static, not dynamic pages/content.

      Serving Cache is like serving static pages (depending upon the degree of caching..).

      --
      Synergies are basically awesome, and they're even better when you leverage them. -PA
    2. Re:only 600, 000 per day? by stratjakt · · Score: 5, Insightful

      In 1994 websites were nothing more than text documents with perhaps a handful of small .gifs in them. They werent plastered with media-intensive-ads, java applets and shockwave whizbangers, background music, video clips streaming off the same server and blah blah blah innovation.

      The web-design and server world seems to be focused on quantity, not quality.

      And frankly, much of what /. links to are personal sites run off of a DSL line. I think the effect has more to do with bandwidth than server load.

      --
      I don't need no instructions to know how to rock!!!!
    3. Re:only 600, 000 per day? by damiam · · Score: 1

      K5 uses Scoop, which, while probably the nicest weblog engine in existance, is not known for its performance and scalability.

      --
      It's hard to be religious when certain people are never incinerated by bolts of lightning.
    4. Re:only 600, 000 per day? by vanyel · · Score: 4, Informative

      Yes, but each one of those wizbang annoyances is just another hit to the server. dynamic generation of pages is the real server killer, depending on how much hoop-de-loop you're going through to make them.

    5. Re:only 600, 000 per day? by stratjakt · · Score: 2, Interesting

      True enough, I meant to say that too.. Dynamic web pages are relatively 'new'.

      The difference between just showing a page and creating one is like the difference between a pre-rendered .avi file and rendering it realtime in hardware.

      I still figure bandwidth is the big killer. I mean you can only stuff watermelons through a garden hose so fast.

      --
      I don't need no instructions to know how to rock!!!!
    6. Re:only 600, 000 per day? by Chester+K · · Score: 2, Funny

      When I was benchmarking web servers in *1994*, servers could handle 100,000/hr, which is only about 30/sec.

      But this is a Java-based server we're talking about.

      --

      NO CARRIER
    7. Re:only 600, 000 per day? by calethix · · Score: 1

      Don't forget all the complicated, overdone html that stuff like frontpage spits out.. didn't have much of that back in '94 either. :)

    8. Re:only 600, 000 per day? by cristofer8 · · Score: 2, Insightful

      That could be true, but this article is talking about dynamic database based pages. There's a huge difference.

    9. Re:only 600, 000 per day? by mark_lybarger · · Score: 2, Funny

      yeah but the blink tag was right around the corner! didn't over load server much, but ensured the clints had a swell time viewing.

    10. Re:only 600, 000 per day? by FyRE666 · · Score: 3, Funny

      Yes, but each one of those wizbang annoyances is just another hit to the server. dynamic generation of pages is the real server killer, depending on how much hoop-de-loop you're going through to make them.

      Maybe it's just late, but I'm having a problem following all this technical jargon ;-)

    11. Re:only 600, 000 per day? by epiphani · · Score: 1

      I ran a porn webserver that was doing over 7 million hits a day, spread over 50+ virtualhosts. I'd bet my life that there wasnt a single site that had over 100KB of text, and less than 50MB of images/movies. And that machine was nothing more than a well configured single CPU 550Mhz Xeon running freebsd. Mind you, it did have 1.5 gigs of ram.

      --
      .
    12. Re:only 600, 000 per day? by Bert64 · · Score: 1

      Exactly, static content, plenty of cache.. no problem.
      It`s dynamic content that causes the load, and worse.. the excessive use people make of dynamic content and databases.. for instance i have seen many sites where things which should be static, such as images, downloadable files, etc... are served from a database, this just causes totally unnecessary load on the server.. It`s harder to cache, consumes more ram when doing so, and requires more processor time to process the request.
      We had a similar pornsite, one stats server running various cgi scripts designed to record hits and referrers so we knew which of our affiliates was sending us the most traffic etc, and setting cookies on the visitors so that our affiliates can see when were sending content to them. The other simply served static content, the main index pages, the porn images themselves. The static server was a P2/400 and spent most of its time idle, the dynamic server was a dual P3/800 and was usually pretty heavily loaded, despite generating about 0.5% of the network traffic the static server did.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    13. Re:only 600, 000 per day? by derF024 · · Score: 1


      I still figure bandwidth is the big killer. I mean you can only stuff watermelons through a garden hose so fast.


      As someone who's had a few sites get "slashdotted" this is exactly the problem. one of our servers in particular has been slashdotted more often then others (we even had a site mentioned on howard stern once, which puts slashdot to shame) and has always taken the hits in stride. Not because it's some huge bohemith of a machine (twin athlon 1.1 Ghz's, 2 GB of RAM) but because it's got two t3's stuck on the back of it.

    14. Re:only 600, 000 per day? by MSBob · · Score: 1

      I don't think they are doing all that well either. I'm pruning bottlenecks in a java app my company designed and I can currently get it to serve around 2 new sessions every second (approx. 7200 unique user sessions per hour) AND they are all dynamic flows with LOTS of DB activity (aruond 70 SQL queries in every session). All this uses a single 450Mhz sparc CPU to host both the app server and the database. The box is around 20% idle under that load.... And I'm not done pruning yet.

      --
      Your pizza just the way you ought to have it.
  10. Slash Bench by larry2k · · Score: 1, Insightful

    Is the /. effect a benchmark test for web sites?, since when?

    --

    The package said "Windows XP or better. Pentium Class Processor or better"... So I got a Mac with OS X

  11. yes. by krog · · Score: 5, Funny

    seeing as it took Slashdot 35 seconds to serve me up this comments.pl?op-Reply page, yes, i think we are supposed to be impressed.

    1. Re:yes. by AKnightCowboy · · Score: 1
      seeing as it took Slashdot 35 seconds to serve me up this comments.pl?op-Reply page, yes, i think we are supposed to be impressed.

      Served it up to me in under 2 seconds. Sounds more like congestion of the network somewhere instead of the server.

    2. Re:yes. by DarkZero · · Score: 1

      seeing as it took Slashdot 35 seconds to serve me up this comments.pl?op-Reply page, yes, i think we are supposed to be impressed.

      I think that you must be having a problem on your end, since it loaded in under two seconds for someone else and loaded instantaneously for me.

    3. Re:yes. by Spotless+Tiger · · Score: 1
      Slashdot has been widely unavailable to me ever since they switched to Exodus West or whatever it was. Front page only loads roughly half the time, comments rarely go through...and it's only on Slashdot.
      Blame SPEWS. They've been blacklisting cw.net, through which Exodus gets its connectivity, for the last six months.
      --
      Racists should be sent back to where they came from
    4. Re:yes. by truesaer · · Score: 1

      I get that all the time as well. Pages on slashdot either load very fast, or very very slowly. this only happens to me on slashdot, so I assume it is their problem.

    5. Re:yes. by AKnightCowboy · · Score: 1

      Oh, I'm not saying Slashdot doesn't suck, it's just that when I loaded the page it took 2 seconds. At other times I just get dumped to a front page and every single story has the same huge quarter page slashvertisement next to it or other random weirdness. Since I've been reading the site for years though I've come to expect them to break the site on a regular basis. I mean, come on, it's not like this is CNN or Microsoft.com or something. So what if it's down or broke? A couple thousand geeks get pissed off? (600k accounts == 10k "real" accounts and 590k troll accounts that never got deleted. :-)

    6. Re:yes. by Bert64 · · Score: 1

      35 seconds to load on your dialup? 35 seconds to render on your 486? 35 seconds to transfer from the other side of the world over a congested backbone? there could be many reasons why it takes so long to load... in my case the content is downloaded much quicker than the machine (a humble 250mhz) can render it.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    7. Re:yes. by charon_on_acheron · · Score: 1

      "(600k accounts == 10k "real" accounts and 590k troll accounts that never got deleted. :-) "

      I was wondering about this lately. How many of the 600,000+ accounts are people who actively read and post comments, how many are old accounts from people who have stopped reading /., and how many are just troll accounts? I've looked at pages for some users, and they have only posted 8 comments since 1998, or somesuch. Who really does that? and why?

    8. Re:yes. by Phroggy · · Score: 1

      seeing as it took Slashdot 35 seconds to serve me up this comments.pl?op-Reply page, yes, i think we are supposed to be impressed.

      Yeah, what's up with Slashdot lately? Lately it's been occasionally slow. Anyone know the reason?

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
  12. But the ad server is slashdotted by ites · · Score: 4, Insightful

    Which is very funny: this is an article explaining how a web site survived the /. effect, thus trying to catch the /. readers back for a second round, and getting lots of advertising hits at the same time. If only that server could keep up.
    Now, a while back on /. I saw a report about a 200Mhz (?) PC running Windows 95 and with about 30 hard disks, that also seemed to do very well under the /. effect.

    --
    Sig for sale or rent. One previous user. Inquire within.
  13. jeez by tps12 · · Score: 1, Funny

    Can you say dry? 290,000 whatever, 21% something, 550 MHz, blah blah blah....

    I'm not a computer, I'm a person. Give me graphs or don't bother.

    --

    Karma: Good (despite my invention of the Karma: sig)
    1. Re:jeez by peterpi · · Score: 1
      *bite*

      urrr, if you RTFA you'll see plenty of graphs.

    2. Re:jeez by ka9dgx · · Score: 1
      If I could read the article... I'd probably be impressed... right now it's been about 4 minutes, and it's still not loaded.

      --Mike--

  14. Re: x per second. by Servants · · Score: 1

    Are we supposed to be impressed with a computer that can serve 8 [actually 11] hits and 4 pages per second?

    If that's what a slashdotting consists of, then probably yes.

  15. Big deal by Amsterdam+Vallon · · Score: 1

    There are plenty of Web server machines that rarely crash, if ever. Many of these sites rely on the work on only one machine, just like Aces Hardware. If they have more than one Web machine, they split each up for each category (e.g. Google has a machine each for their "catalogs", "search", and "images" utilities)

    Academic: MIT.edu, Stanford.edu, Maryland.edu
    Business: Amazon.com, CDNow.com, Slashdot.com, Google.com
    Pleasure: TheHun.net, Playboy.com, Napster.com

    --

    Reply or e-mail; don't vaguely moderate. Ex-O'Reilly/MIT employee, now a full-time Google employee.
    1. Re:Big deal by benwb · · Score: 1

      you do realize that google has literally hundreds, if not thousands of machines serving web pages, right?

    2. Re:Big deal by malfunct · · Score: 1
      Its actually not that hard to partition web load over a number of machines. Most websites of any major size already do this. You stick a virtual IP up at the outside that round robins between a bunch of backend web servers that do the real work.

      To me the harder part of it is partitioning load across servers that hold data. Figuring a way to split up your data so all important data is available to all front end machines while still keeping the backend machines within a resonable load level is difficult at best.

      --

      "You can now flame me, I am full of love,"

    3. Re:Big deal by merger · · Score: 1

      Last average I heard for google was around 10,000 low cost servers. Therefore it isn't that big of deal if 100 or so servers go down. There is a really good .mp3 interview with Jim Reese, the Chief Operations Engineer available. It may be a little old but still a good listen.

    4. Re:Big deal by 21mhz · · Score: 1
      Business: Amazon.com, CDNow.com, Slashdot.com, Google.com
      Pleasure: TheHun.net, Playboy.com, Napster.com

      I object -- Slashdot belongs to Pleasure. Probably, even ahead of TheHun.net, though I'm not completely sure.
      --
      My exception safety is -fno-exceptions.
  16. Ones that crashs by MCMLXXVI · · Score: 5, Interesting

    I would be more interested in stats on a webserver that took a puke. It would be interesting to see what started the dominos falling and what ultimatly brought it down. It would be as good a learning experiance as this article is.

    1. Re:Ones that crashs by sean23007 · · Score: 1

      Yeah, but anyone who has compiled data like that would not be too eager to submit another link to Slashdot. After all, they don't really want to get smoked again...

      --

      Lack of eloquence does not denote lack of intelligence, though they often coincide.
    2. Re:Ones that crashs by vasah20 · · Score: 1

      True. But you'd sorta hope the admin(s) of the server would change their configuration around to handle that kind of stressload, so they don't get /.-ed again, right? Wouldn't submitting that data be the perfect test to see if their new configuration really worked?

    3. Re:Ones that crashs by joshuac · · Score: 1

      They will get their chance; how we _didn't_ survive a slashdotting. :)

  17. I wish I understood/knew more about this... by rindeee · · Score: 1

    ...so I could implement it on my PHProjekt server! I have become so dependent upon it that it's almost scary. I'd love to speed it up a bit though. Time to start reading I suppose.

  18. Not to be cynical... by Xunker · · Score: 2, Interesting

    Not to be cynical, but serving (nearly) static pages shouldn't be a huge load by any standard. Even with dynamic (fully dynamic) pages, 250,000 isn't a huge number.

    As an example, I run a pretty popular site that pumps out about 250,000 as well, all CGI-created and database fed pages. This is being served by two 1ghz web heads and a 1ghz db server. Granted that those three machine run at 100% load during peak hours, it's still not a huge deal (this is because I haven't finished the local caching mechanism yet). Did I mention that the two webservers also toss 1 million images a day too?

    Of course, I don't wan to belittle the article that much -- If anything, it shows the preformance gains one gets when you use efficient hardware (I have no doubt that their 550 mhz Ultrasparc II has nearly the same horsepower as a 1 ghz x86) and efficient caching (caching data in RAM and serving from there, avoiding disk access penalties, is a huge performance increase).

    --
    Hilary Rosen's speech was about her love of money and her desire to roll around naked in a pile of money.
    1. Re:Not to be cynical... by BlueRibbon · · Score: 1

      it shows the preformance gains one gets when you use efficient hardware (I have no doubt that their 550 mhz Ultrasparc II has nearly the same horsepower as a 1 ghz x86) and efficient caching (caching data in RAM and serving from there, avoiding disk access penalties, is a huge performance increase)
      Yes, but that's what this article is all about! Showing that with good hardware and good administration you can save money, time and even the hardware's lifetime.

      --
      KISS - Keep It Simple, Stupid!
    2. Re:Not to be cynical... by RajivSLK · · Score: 1

      I run a pretty popular site that pumps out about 250,000 ... Did I mention that the two webservers also toss 1 million images a day too?

      Care to post a link? I'm in the mood for a little pr0n action right now.

      ** The pr0n industry, always on the cutting edge **

    3. Re:Not to be cynical... by Xunker · · Score: 1

      Sorry, it's not pr0n. Strict policy against showing boobies.

      --
      Hilary Rosen's speech was about her love of money and her desire to roll around naked in a pile of money.
    4. Re:Not to be cynical... by buysse · · Score: 2, Insightful
      Incorrect. The 550 Mhz USII mentioned is in a Blade 100 or 150, which means that it's fucking slow. It's a IIe, not a II. A PIII/550 would smoke it for web serving.

      256K of cache on die, ALI chipset board that's a lot like a PC, slow PC133 (with very high latency) memory, dog-fucking-slow disk, unless they're using SCSI.

      This is not your father's E450.

      --
      -30-
    5. Re:Not to be cynical... by Xunker · · Score: 1

      ...and faster servers, bigger pipes, raid arrays...

      It's amazing how slow something can become when you don't plan on it getting popular :)

      --
      Hilary Rosen's speech was about her love of money and her desire to roll around naked in a pile of money.
  19. Re:Maybe by AssFace · · Score: 1

    I agree with you - Garth Brooks is an amazing writer.

    I think the best actor is Martin Lawrence in The Great Escape.

    ( I think you meant Frederick P. Brooks - but perhaps you were in jest and I'm retarded...)

    --

    There are some odd things afoot now, in the Villa Straylight.
  20. Re:/. server admins? by stratjakt · · Score: 1

    /. is down or slow probably 5 or 6 hours out of the day lately. I don't think so.

    --
    I don't need no instructions to know how to rock!!!!
  21. Oh the Irony by Alf+Alpha · · Score: 1

    Post an article about surving a Slashdot attack only to get slashdotted the second time around.

  22. That's hardly impressive by shoppa · · Score: 5, Informative
    When one of the sites that I serve, The Computer History Simulation Project, was slashdotted, I was serving 40-50 pages per second (which is nearly ten times the rate attributed to Ace's Hardware) on a 4-year-old webserver (a K6II-500) that cost about $200 to put together. And the server itself was ticking along with only a few percent CPU usage.

    OTOH, my puny little SDSL connection was seriously maxed out.

    Even old hardware can happily serve up hundreds of documents a second, if the pages are static.

    1. Re:That's hardly impressive by linuxbaby · · Score: 1

      Well then shoppa... tell us how you did it! The point is not to brag, but to help show others what you've learned in tuning your own box.

    2. Re:That's hardly impressive by alannon · · Score: 1

      A quick look at your web site reveals that it is not a database-backed web site with a lot of scripts running. Serving up dynamic content is much more challenging to do.

    3. Re:That's hardly impressive by shoppa · · Score: 4, Interesting
      I agree, dynamic content is very much more challenging - but is it wise for Ace's (or any of the other sites) who are serving up static stories to do so through dynamic methods?

      I am familiar with serving dynamic content of very high information density, and let me tell you, Ace's doesn't compare. The data I serve from work is updated every second; the stories on Ace's (and most other hardware-review sites) change every couple of days.

    4. Re:That's hardly impressive by shoppa · · Score: 1
      your site does 4.3 million a day on a K611-500?

      It did, when slashdotted. It's since been updated to a VIA C3 at 800 MHz.

      You're full of CRAP.

      No, it's a high-content site without all those frilly graphics and doesn't use dynamic methods to serve up static data. Just dumb-obvious things.

    5. Re:That's hardly impressive by shoppa · · Score: 1
      tell us how you did it!

      The steps:

      1. Install Linux
      2. Connect to the 'net
      3. Install Apache, configure.
      4. Set up documents to serve
      The only limit when serving static documents to the 'net at large is network bandwidth.
    6. Re:That's hardly impressive by Bytenik · · Score: 1

      I believe you shoppa.

      What I can't figure out is why anyone would be surprised that a computer capable of many millions of instructions per second is able to handle a paltry 50 static requests per second.

      --

      "Scientists prove we were never here."
      -- Devo

    7. Re:That's hardly impressive by Blaskowicz · · Score: 1

      It did, when slashdotted. It's since been updated to a VIA C3 at 800 MHz [mini-itx.com].

      Isn't that a down-grade?

  23. Getting it right the first time? by ites · · Score: 4, Funny
    >Wagner LLC Consulting Co. - Getting it right the first time
    >Garth Brooks covers this in his famous book "The Mythical Man Month" where he proves in a controled lab environment that Java under X86 runs on the order of Olog(n) slower than it does on a RISC chip like an UltraSparc.

    WTF? Fred Brooks wrote this book, and I don't seem to remember RISC or UltraSparc chips, not to mention Java, in 1974. Garth Brooks is (AFAIK) a country music singer. Try again.

    --
    Sig for sale or rent. One previous user. Inquire within.
    1. Re:Getting it right the first time? by Dirtside · · Score: 1
      WTF? Fred Brooks wrote this book, and I don't seem to remember RISC or UltraSparc chips, not to mention Java, in 1974. Garth Brooks is (AFAIK) a country music singer. Try again.
      I'm not sure if this is worse, but yesterday someone claimed that "The Mythical Man Month" was written by Mel Brooks.
      --
      "Destroy science and religion. Science would re-emerge exactly the same; but not religion." - Penn Jillette, paraphrased
  24. Isnt the real problem BANDwidth? by Kevin+Stevens · · Score: 4, Insightful

    I never really thought that the problem lied with the server's hardware, but in the bandwidth to the host. Shouldn't an article be written about how to conserve bandwidth during a slashdot effect? Even older servers should be able to handle 100 requests per second. I think most FPS's are alot more taxing than that.

    1. Re:Isnt the real problem BANDwidth? by delta407 · · Score: 1

      One word: mod_gzip.

    2. Re:Isnt the real problem BANDwidth? by doofusclam · · Score: 1

      It should be the case, because then all you need to do is shell out bucks to increase the bandwidth and everything is fine.

      Thinking about this, are there any websites that 'degrade' content depending on the cpu load, i.e. maybe sending lower-resolution jpegs while the server is stressed? Slashdot did something similar to this on 9/11, the front page was changed to reflect but this event. I don't think it was an automated process though.

      seany

    3. Re:Isnt the real problem BANDwidth? by Salden · · Score: 1

      Hm, but there goes more server overhead, this of course is with dynamic content. The solution is to have balance. Most slashdottings are not bandwidth problems but load problems. Most sites that survive slashdottings use cache servers.

    4. Re:Isnt the real problem BANDwidth? by pjrc · · Score: 3, Informative
      One word: mod_gzip.

      Yes, mod_gzip is great and I use it on my own server, but for any "normal" website the main advantage is an interactive speed-up for dialup users. It really doesn't save huge amounts of bandwidth (in this case, enough to matter for withstanding the slashdot effect).

      As an example, the page slashdot linked to is 22443 bytes of compressable html, and approx 84287 bytes of images (not including the ads and two images that didn't load because they're not handling the slashdot effect so well as they thing they can). At -9, the slowest and best compression (remember, this is a dynamic JSP site, not static content you can compress ahead of time), the html compresses to 5758 bytes, thereby reducing the total content from 106730 bytes to 90045.

      That's only a 15.6% reduction in bandwidth.

      Also, a typical HTTP response header, which can't be compressed, is about 300 bytes (not including TCP/IP packet overhead, which we'll ignore hoping that HTTP/1.1 keepalives are putting it all in one connection...). There were 18 images (actually 20, but junkbuster filtered 2 out for me). That's 19 HTTP headers, at 300 bytes each, all uncompressable. Adding in HTTP overhead we're at (approx) 112430 without compression and 95745 with mod_gzip. So the uncompressability of the headers reduces the bandwidth savings to 14.8%.

      The big advantage that makes mod_gzip really worthwhile for a site like that is the a dialup user can get all the html in about 2 seconds, rather than 5-6 (assuming the modem's compression is on). Then they can start reading, while the remaining 82k of images slowly appear over the next 20-30 seconds.

      Now in some cases, like slashdot's comments pages, mod_gzip makes a massive difference. But for most sites, the majority of the bandwidth is images that are already compressed. That 10% to 20% reduction in bandwidth from simply installing mod_gzip is pretty small compared to a bit of effort redesigning pages to trim the fatty images.

    5. Re:Isnt the real problem BANDwidth? by Isao · · Score: 1

      The article DOES talk about this. Third or fourth page.

    6. Re:Isnt the real problem BANDwidth? by ParamonKreel · · Score: 1

      It could be interesting to cache the GZipped version of large text pages such as the slashdot comment page. That would save cache space and server overhead of caching.

    7. Re:Isnt the real problem BANDwidth? by Large+Green+Mallard · · Score: 1

      My issue with mod_gzip is that squid up until very recently cached the page in gzipped format and sent it back to anyone who wanted it.. even if they couldn't accept gzipped. Which shat me off no end given that my previous ISP used transparent proxying...

      The problem is fixed in squid now, thanks to the fact one of the squid developers lives across the road from my work.. but my ISP wouldn't upgrade, citing security reasons (??),... so I left them :)

  25. Re:/. server admins? by r0gue_ · · Score: 1

    doesn't the faq still have the server info. A bunch of debian boxes and a couple of monkeys...

  26. Re:Big deal (goodbye karma) by kahei · · Score: 1

    Ah, but this is a *java* webserver with okay performance. And *that's* quite a big deal :)

    (This space left blank for Java evangelists to
    rage in).

    --
    Whence? Hence. Whither? Thither.
  27. Just in case by sameerd · · Score: 1

    Where Performance is Concerned, Optimization is Key

    When our Hitchhiker's Guide to the Mainframe article caught the attention of Slashdot last month, quite a few people were curious to know about how our server handled the traffic. This is a topic we have discussed previously in Building a Better Webserver in the 21st Century and SPECmine - A Case Study on Optimization, but since there was so much interest in some more in-depth information on the topic, I decided to spend some time explaining how the data object caching in our web application can do so much for performance without sacrificing the ability to serve true dynamic content. I'll start with some statistics gathered on December 4th.

    Our traffic for the day totaled over 590,000 requests (hits), with over 250,000 of those being requests for pages. Requests peaked at 677 per minute, which of course includes everything (images, pages, files, etc.). The peak number strictly for article pages was 235 per minute. Perhaps the most impressive statistic is that during these peaks, our web application running in Java (including the HTTP server) was only consuming 20% of available CPU time, and all article requests were served in 4 milliseconds or less. Furthermore, our database was only at 7.5% CPU utilization. So, when the system was serving roughly 11 requests per second, the CPU was nearly 75% idle. Let's take a look at the traffic for the day, graphed on a per-minute basis:

    In the graph above, we have two different sets of data. The first is requests, which is essentially anything requested from the server -- images, dynamic pages, static pages, etc. The second is article pages, like this one. As you can see, the initial spike in traffic from Slashdot occurs around 1:30 AM. There is other dynamic content, such as the front page or the message board, that is not accounted for in this data, but nevertheless, the graph gives you a good idea of the ratio between article pages (text) and everything else. Traditionally, dynamic content is often one of the most intensive types of content for a webserver, but as you will see in the next graph, that doesn't always have to be the case.

    In this graph we see the CPU utilization of both the Java web application and the database, sampled each minute, relative to the article requests per minute. Here you can clearly see the peaks I mentioned earlier happening roughly between 9:30 and 10:00 AM. You can also see that the average CPU utilization of both the web application and the database is rather low: 14% for Java and 6.9% for the database. The Java CPU utilization peaks at 51% for a very short time early on, as it is caching content on demand as traffic begins to spike. You can also see occasional spikes in the database CPU utilization, as cached data is periodically updated. When you consider that there are servers out there that will fall over and die when faced with this kind of traffic, an overall average CPU utilization of 21% for a modest 550 MHz uniprocessor machine is not too shabby.
    Advertisement:

    Overview

    Before we begin, let's take a quick look at what's covered in this review:

    * Page 1: Introduction
    * Page 2: Scaling with Larger Workloads Effectively
    * Page 3: Inside the Web Server Application
    * Page 4: Benchmarking with ApacheBench
    * Page 5: Benchmarking Web Server Scalability with AutoBench
    * Page 6: Static HTTP Performance
    * Page 7: Dynamic Cached vs Uncached Article Performance and Conclusion

    Let's start by considering some of the bottlenecks present in many web servers and how to manage them...

  28. Re:/. server admins? by Blimey85 · · Score: 1
    Hmm.. I thought it was just my crappy EarthLink dsl... it's been really slow off an on for me since they moved to servers a couple months ago. It used to be very fast ALL of the time... at least for me... now it's very slow ALL of the time. Damn it, damn it, son of a bitch.

    Maybe the /. team needs to study this article and learn a few things.

    --
    How is it that one careless match can start a forest fire, but it takes a whole box to start a campfire?
  29. huh? by Dman33 · · Score: 1

    Sorry, you lost me at Garth Brooks...

    1. Re:huh? by stratjakt · · Score: 1

      I think he meant Garth Vader.

      --
      I don't need no instructions to know how to rock!!!!
  30. Re:More. by John+Harrison · · Score: 1

    You seem to have accomplished your mission.

  31. Bottlenecks by guacamolefoo · · Score: 1

    I think that the main thrust of the article was essentially that size doesn't matter -- it's how you use what you've got.

    One thing that sort of made me think though, was the focus on being able to deliver massive numbers of "pages" and "hits". For most sites, this is not an issue -- their bandwidth would be hosed before the server would be. You can only stuff eight great tomatoes into that itty-bitty can. It doesn't take much to saturate a T-1.

    If you have nearly unlimited bandwidth, then these server-tuning issues start to become important. I think it is a good idea to focus on how applications are built and used when thinking about performance of servers. Too often, the sole focus is "can I do task X" and not "what is the most-efficient way I can do task X".

    A nifty article, all in all.

    GF.

  32. Strange what they're saying about the CPU by peterpi · · Score: 1
    Mad propz for surviving a slashdotting and everything, but:

    "an overall average CPU utilization of 21% for a modest 550 MHz uniprocessor machine is not too shabby."

    Firstly, when said CPU is an UltraSparc II, then 550Mhz is anything but modest. Secondly, I would not expect the CPU to be busy during a slashdotting; it would be hanging around waiting for the disk drives and network card to come up with something useful.

    1. Re:Strange what they're saying about the CPU by doofusclam · · Score: 1

      Yeah but maybe this is part of their point: us x86 crowd tend to get all hungup on mhz battles, like with intel vs amd etc.

    2. Re:Strange what they're saying about the CPU by swordgeek · · Score: 2, Interesting

      Unfortunately, the comment on the processor isn't quite right.

      The UltraSparc II only goes up to 480MHz, and the UltraIII starts at 750. In between is the grey area of the IIe and IIi, and the ONLY Sun box with a 550MHz processor is the SunBlade 100/150.

      If that's their web server, then the CPU is the least of their worries--the thing has internal IDE drives, two (only) 33MHz narrow PCI slots, and not much else. Assuming that one of the PCI slots is used for a faster and/or redundant network connection (QFE card most likely), then the other one is the only connection to SCSI disks. That CPU, low-end as it is (for Sun), is definitely going to spend its time waiting for the rest of the system.

      (And yes, I know that was your second point--I just wanted to back it up with some detail)

      --

      "People who do stupid things with hazardous materials often die." -- Jim Davidson on alt.folklore.urban
    3. Re:Strange what they're saying about the CPU by blargster · · Score: 1

      My company currently deploying Sun Fire V120s with single 650MHz Ultra IIe procs. They are also available with 550MHz Ultra IIe's. This last version is probably what is used as a webserver in the example. Sun usually uses specific processors across a variety of product types.

    4. Re:Strange what they're saying about the CPU by gerbache · · Score: 1

      A quick scan of the low end servers on Sun's website reveals that they sell the Sun Fire 100, which uses the UltraSPARQ IIi. Certainly not high end equipment for Sun, but it's also not one of the super low end Blade machines.

  33. Oh Yeah? by Xaleth+Nuada · · Score: 1

    Gateway Timeout
    The following error occurred:
    Server unreachable

    ----
    Please contact the administrator

    --

    I read Slashdot for the .sigs
  34. We've got them this time! by artificial-intellect · · Score: 1

    It's just a shame that I can't access either of those articles now!

  35. Hi there by SweetAndSourJesus · · Score: 1

    You should know that your use of the word "farked" and your reference to the inane "kitten killing" meme reveal that you are a moron of the lowest grade. It's especially bad since you're not on fark, and we have our own verb for that here.

    Please go back to fark.com, where you can post your mindless drivel with impunity. Here there be bastards.

    --

    --
    the strongest word is still the word "free"
    1. Re:Hi there by Vadim+the+Conqueror · · Score: 1

      although, he DOES have a point.

  36. We Win! by PhoenxHwk · · Score: 3, Funny

    "The page cannot be displayed".

    The lesson here is: put your money where your mouth is and you may end up eating it.

    1. Re:We Win! by evilviper · · Score: 1
      Connect failed

      Your request for http://www.aceshardware.com/read.jsp?id=45000241 could not be fulfilled, because the connection to www.aceshardware.com (216.87.214.213) could not be established.

      This is often a temporary failure, so you might just try again.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    2. Re:We Win! by joshuac · · Score: 1

      And if you do get a page, not many of the images are loading. They think they are hot for surviving a slashdotting with a peak at 1:30a, and the article telling the rest of us how to do it gets slashdotted :)

  37. Oops!! by rimhoffd · · Score: 1

    Looks like they are slashdotted this time!!!

  38. you're thinking of static pages by Kunta+Kinte · · Score: 3, Interesting
    Those guys are using persistant server-side applications. Try getting those numbers from a reasonably complex PHP script, even with an opcode cache on such a small box( see my sig. for more info)

    Lots of people could use this type performance. I only had a chance to use JSP on one project, a while back. Tomcat was notoriously difficult to install back then. But when it was up, the difference between JSP application server and PHP become apparent. Application servers can make quite the difference.

    Just having an application scope for variables saved us a trip the the ldap server per request. PostNUKE, squirellmail, and lots of other large PHP apps could be sped up drastically if some of those features were available in the PHP engine.

    --
    Based on upvotes, Ageism is the only "-ism" Slashdotters care about and think isn't SJW
    1. Re:you're thinking of static pages by vanyel · · Score: 1
      Those guys are using persistant server-side applications. Try getting those numbers from a reasonably complex PHP script, even with an opcode cache on such a small box

      Like I said, misconfigured ;-)

      (yes, I'm joking)

    2. Re:you're thinking of static pages by Eric+Savage · · Score: 2, Insightful

      It is SO frustrating for people to say "well I had trouble w/Tomcat blah blah blah". Listen up people, Tomcat is a REFERENCE IMPLEMENTATION. Simply put, this means they are more concerned with features than with performance/stability/scability. Yes this is a good thing, because it lets us try out the new specs before the real products adopt them. If you don't believe me, look how many "WORKSFORME" resolutions there are in Bugzilla, far too many to justify a real product. Sure its on Jakarta and sure it is fine for developing/testing apps but it is totally unsuitable for a large/medium scale deployment. I refuse to deploy tomcat for anything other than an intranet application. Resin (and others) are rock solid performance demons that blow away pretty much any other comparable dynamic server pages out there (Java and not)

      As far as PHP, of course its not going to handle the numbers, its a weak design. If you don't believe me, look at the list of upcoming features in PHP, nearly all of which have been in Java for years.

      --

      This is not the greatest sig in the world, this is just a tribute.
  39. maybe not? by silicongodcom · · Score: 1

    i clicked the URL to read the article, but it took 5 seconds to load the page and the images still haven't rendered. oops.

  40. Re:Maybe by Enry · · Score: 3, Funny

    I prefer reading "The Mythical Man Month" in the original latin. Brooks' translation leaves much to be desired.

  41. Not Impressed. (Like everyone else) by RajivSLK · · Score: 1

    I have to agree with the above comments. I'm not impressed at all. 11 requests/sec is *nothing* to brag about.

    Currently *one* of our servers is serving up 114 request / sec (and these are dynamic page requests -- all requiring extensive DB interaction). The entire system is serving well over 3,000 requests / sec.

    We achieved this level of performance by using the right tools for the job, always. (OT Rant:) **and by hacking**. hacking hardware and software. Where have all the good hackers gone, anyway?

    Today I see more and more people willing to shell out $$$ to companies for expensive *solutions*. arrgh.
    (/OT Rant)

    For the record - our setup:
    22 cheap lite weight servers managed by LVS + Heartbeat + Mon. 5 MySQL DB servers (using replication) and C / PHP / JAVA. (all extensively hacked)

  42. not that much by k3v0 · · Score: 1

    this is upreme irony. your server gets /. ed becasue of your thorough and informative look at the scalability of your servers.

    1. Re:not that much by LilGuy · · Score: 1

      I'll not take into account your spelling...

      But it appears to be working just fine for me. If it could handle the last slashdot posting, with ease none the less, what makes you think it won't be able to this time? I mean really you can only hit refresh so many times before it's just boring and time to move on...

      --

      You're nothing; like me.
    2. Re:not that much by LilGuy · · Score: 1

      I ceed defeat. It was working just fine when I was first reading the article about 13 minutes ago, and was still going while everyone else was complaining, but it seems my golden connection has been lost within the past couple minutes. Slashdot wins again.

      --

      You're nothing; like me.
  43. Not too impressive by twfry · · Score: 1

    250,000 hits/day / 24hours / 3600 secs per hour = 2.89 hits per second. Is this really that impressive. I've heard about other web servers handling thousands of pages per second.

  44. Updating Cache data by andawyr · · Score: 2, Interesting
    But here's the rub, and he mentions it at the end of the article:

    Of course, there are more complex applications where data caching can be implementing, such as discussion forums where multiple users can be adding, editing, and deleting messages simultaneously. But that's a topic for another article.

    Most of the applications I write involve updating data almost as often as fetching it from the database. In an environment like Apache where you have individual processes serving content (and database connections are process-centric), implementing caches that are updatable becomes a very complex excercise, without implementing an additional layer.

    eToys used a b-tree (Sleepycat?) database layer situated in front of the database layer - they would store objects in the b-tree, and fetch them from there if they had not expired. Once cache amongst all the servers made this worth doing; a Java web server can do something similar, since the objects are stored in memory shared between the various serving threads. The end result is similar to what Ace's Hardware has done.

    What have other people done? Since I use Apache, I'm leaning towards a disk-based caching system.

    1. Re:Updating Cache data by Xerithane · · Score: 1

      eToys used a b-tree (Sleepycat?) database layer situated in front of the database layer - they would store objects in the b-tree, and fetch them from there if they had not expired.

      You can actually read all about eToys and their implementations at perl.apache.org.

      --
      Dacels Jewelers can't be trusted.
  45. This just in... by Slashed+Otter · · Score: 1

    ...caching what are essentially static pages stored in the database to eliminate duplicate database queries dramatically increases performance...film at 11. *yawn*...call me when they start having to deal with user interaction.

  46. So what? by nathanz · · Score: 1
    I was excited to see an article about how to architect a website to combat the Slashdot effect... but I was soon dissappointed. They could have made it easier on me and reduced the article to a single sentence: "We use object caching and database connection pooling".

    Do they think this is revolutionary or even noteworthy? Anyone who builds dynamic websites of any size does these things!

  47. Okay team. by be-fan · · Score: 1

    We didn't get them the first time, but that's okay. Just buck up and let's give them another shot! If they don't go down the first time, just keep hitting 'em until they do go down. You've got to give it a full 150%, you hear me? Now get out there and click some links!

    Go team /. go!

    --
    A deep unwavering belief is a sure sign you're missing something...
  48. /.'ed - even more experience! by MoobY · · Score: 1

    I hope they share the information on how and why their server trashed this time one of their stories appeared on slashdot. That would give us both success and failure, excellent edutainment!

    --
    --- Sigmentation Fault - Comments Dumped
  49. When in rome.... by rimhoffd · · Score: 1

    Many pages get "slashdotted" but obvously slashdot itself *usually* is not affected by this! Maybe they should follow slashdot's lead, yeah?

  50. looks like they spoke too soon... by pjrc · · Score: 4, Interesting
    To point out the obvious, it looks like they're slashdotted.

    Reloading their page a couple times (2nd page of the article, not the one slashdot linked to), I'm getting occasional 503 errors, and the rest are taking a very long time to load. Usually the page comes up with some "broken" images that didn't load.

    At the bottom of each page, there's a number that seems to indicate the time they believe their server spent serving the page. Usually is says something like "2 ms" or "3 ms"... That may be how long their code spent creating the html, but the real world performance I see (via a 1.5 Mbit/sec DSL line) is many seconds for the html and many more for the images, some of which never show up, and sometimes a 503 error instead of anything useful at all.

    So, Brian, if you're reading this comment (which will probably be worthy of "redundant" moderation by the time I hit the Submit button)... it ain't workin' as well as you think. Maybe the next article will be an explaination of what went wrong this time, and you can try again???

    1. Re:looks like they spoke too soon... by juicy_pants · · Score: 1

      Actually, I can get to the site without errors. The first page I loaded took a good 4 minutes to show up, but after that page loaded, each page request has been loaded almost as fast as normal.

    2. Re:looks like they spoke too soon... by evilviper · · Score: 1
      An even better sequel:

      http://www.tomshardware.com/
      Article 3: Why We Hate Slashdot
      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    3. Re:looks like they spoke too soon... by WDemon · · Score: 1

      At the bottom of each page, there's a number that seems to indicate the time they believe their server spent serving the page. Usually is says something like "2 ms" or "3 ms"...

      This time i've got "23331 ms" for the main page.

      If you look at the graf of distribution of hits from last time there were two maximums (possibly because of the time of posting). I would guess that today hits distribution has only one maximum and peaks much higher (though the total number of hits - distribution integral - might not be substantialy higher). That's killing them.

      I am *really* looking forward to their next article about server scalability. :)

  51. Re:What a joke! by rindeee · · Score: 1

    And that's why you're already slashdotted???

  52. Re:/. server admins? by k3v0 · · Score: 1

    dont neglect the gaggle of cracked out commando geese

  53. Re:6 per second.l by amd-core · · Score: 1

    /me hopes it will fall this time ;)) let's /. :)

  54. Flunking basic math might be one reason... by LilGuy · · Score: 1
    The stats could be a bit skewed.. it appears that they can't do basic math...

    our web application running in Java (including the HTTP server) was only consuming 20% of available CPU time, and all article requests were served in 4 milliseconds or less. Furthermore, our database was only at 7.5% CPU utilization. So, when the system was serving roughly 11 requests per second, the CPU was nearly 75% idle.

    According to my calculations it would be closer to 72.5% idle. Of course for you stat heads you always gotta allow for 3% give or take, so it works out for you, but come on, if you're going to post some stats, why not be as accurate as possible?

    Maybe I'm just crabby today I don't know.

    --

    You're nothing; like me.
  55. um... and now it's slashdotted? by redcup · · Score: 1

    can we say irony?

    --

    RC
    1. Re:um... and now it's slashdotted? by csguy314 · · Score: 1

      can we say irony?

      'the ironing is delicious.'
      - bart simpson

      --
      This is left as an exercise for the reader.
  56. Where's the dynamic content? by TClevenger · · Score: 1

    Tom's is bragging about their speed at serving "dynamic" content. The only dynamic content I see is the advertisements. If you have data that doesn't change for 10 or 15 minutes, of course you can cache it all on the web server side.

    Try to apply that to a site where content has to change constantly (DYNAMIC content, one would say), and see how caching speeds things up.

  57. Re:Time to break the record?-OR make it BURRRN! by cybercomm · · Score: 1

    only a 21% average

    Aaaah, the one that got away :)

    --
    Live for the present, learn from the past, and dream of the future!
  58. repost by carpe_noctem · · Score: 1

    I would paste the contents of the page in this post, because their page is slashdotted at the moment...I think that would be a bit ironic, though. ;)

    --
    "Quoting famous computer scientists out of context is the root of all evil (or at least most of it) in programming." - K
  59. What performance? by Tar-Palantir · · Score: 1

    Scaling Server Performance my foot. They post an article about how they survived a Slashdotting and now the article is Slashdotted.

  60. Better get back to work ... by codepunk · · Score: 1

    It is not off line yet but it was not ready for the slashdotting. That box is slow as helllllll...

    --


    Got Code?
  61. How Long? by dakers27 · · Score: 1, Redundant

    until Ace's Hardware gets sued by Ace Hardware for trademark infringement?

  62. That performance is supposed to be impressive? by backtick · · Score: 2, Informative

    We have OLD Cobalt Raq3's (300 MHz AMD K6, 128 MB Ram, single IDE drive) running the latest Cobalt OS, and we JUST had one of these boxes get hammered this week; in a 12 hour period, it handled 625,000 hits (mostly CGI's, but it had a reasonable amount of static content), and at the same time handled 35,000 POP requests, sent 4,500 emails, and did some other random functions (and things like hostname lookups are enabled for weblogs, FTP uploads are happening for weather-wite webcams that were associated with the heavy traffic, etc, so there's obviously not a huge amount of "tune it till it's ONLY gonna do one thing" going on here). Now, the box was taking a whipping compared to it's normal load, but c'mon. I can't say the "Poor little 550 MHz UltraSPARC story" makes me tear up :-)

  63. The problem is dynamic content by ergo98 · · Score: 1

    Pretty much any server can serve hundreds, or even thousands of pages per second (I benchmark a basic PC IIS 5 server serving 17,000+ pages per second), but the problem comes with people turn what should be a static page into a dynamic page. The thought process usually goes like this "I'd like my news to all be dynamically driven so that I don't have to modify my files, but rather just add a new document as a CGI/ISAPI/Script served dynamic page!". This can bring even the largest server to its knees. Another poster mentioned GZIPping, and again this relates to dynamic content: If you have static content any half-decent compression module will cache the gzipped output until the source file changes. The solution, of course, is to find the perfect balance between them: Dynamic content that is statically cached for interval or on-demand periods, allowing your server to effectively server static content to the majority of hits while expensive page regenerations are minimized. Voila- Easy versatility and programmable functionality, but without the massive server requirements.

    I say this as a interested party as I design and implemented, and sell, a interval dynamic caching and automatic compression system.

    1. Re:The problem is dynamic content by pjrc · · Score: 2, Informative
      Pretty much any server can serve hundreds, or even thousands of pages per second (I benchmark a basic PC IIS 5 server serving 17,000+ pages per second),

      Have you ever tried a test where the clients kept their connections open for a reasonable length of time??

      In the real world, virtually all clients are connected via links ranging from slow dialup to 1.5 Mbit/sec. They hold connections open and tie up server memory resources for a lot longer than a fast-as-possible benchmark running on the same machine or over fast ethernet.

      Any server running on a single box is probably going to have trouble with 17000+ pages per seconds to modem users, who require many seconds to transfer the page. If the average connection open time is 2 seconds, that's 34000 open connections. Even if the server used only 32k of RAM per connection (barely enough to buffer a few packets and allocate "window" inside the TCP layer in the OS, and maintain OS-level info and buffering for the open file), that'd be over 1 gigabyte of memory. I suspect a combination of Windows (TCP/IP & file I/O), IIS, and ASP.NET uses a lot more than 32k per connection.

  64. OLD ARTICLE by mgkimsal2 · · Score: 2, Informative

    Tuesday, November 27, 2001 8:07 AM EST
    ------
    It was published over a year ago, and undoubtedly was based on their spring/summer 2001 trials. Even then this info wasn't revolutionary, and is even less so now.

  65. He's dead Jim. by rusty+spoon · · Score: 1

    Oh yeah, now it's burning. Burn baby burn.

    Seriously though, when we were testing our server components it happily handled 200 requests for dynamic content per second (not static images or HTML) without flinching.

    So I guess this is special because they used the wrong tool (java) to get a mediocre performance, woohoo! ... they deserve another taste of slashdot.

    I think they are just publicity whores looking for a bit more limelight.

  66. Stop the Presses... by CrayzyJ · · Score: 1

    ...they used this brand new technique called caching to improve throughput.

    Gawd, there are tons of papers about Web Caching and database caching. There are papers comparing the caches. This is hardly new or exciting.

    Heirachical Internet Object Cache. Danzig et al.

    World Wide Web Caching: Trends and Techniques. Barish et al

    High-Performance Memory-Based Web Servers: Kernel and User-Space Performance. Joubert et al.

    A Scalable System for Consistently Caching Dynamic Web Data. Challenger et al.

    --
    Holy s-, it's Jesus!
  67. HE IS RIGHT! by cybercomm · · Score: 1

    The page cannot be displayed
    There is a problem with the page you are trying to reach and it cannot be displayed.
    </I>

    Ummm did tey get their article shlashdotted? That is what you get when you brag! /. r00lz!

    On the more serious note i find it very interesting that the other article gave an average load of 21% whereas now they are somewhere in oblivion. Could this have anything to do with the timr that the article is posted? (IE: If they post it 9:00 PST or when majority os slahdotters are online and the first article they saw was this one?)

    --
    Live for the present, learn from the past, and dream of the future!
  68. different meanings of "dynamic" pages by Confuse+Ed · · Score: 4, Informative

    They've really simply discovered that dynamically generating essentially static content is a bad idea : the 'dynamic' pages they are talking of are just articles which once written stay the same, and so are serving identical pages to each user.

    Using scripting with database look ups to create such pages is obviously not good - much better is to compile your data in to static pages and serve those. I have done this for my own website using XSLT to generate the html pages with consistant links and menu's etc. - but you do have to remember to re-build it after making any changes or adding new content (I use gnu make to handle the dependancies of one page upon another so it doesn't rebuild the entire site everytime.)

    They've taken the alternative approach of still using a database for the requests, but then caching future requests for the same page-id's, which has the advantage of being compatible with their original dynamic generation system, but they don't mention how they handle the dependancy / cascading alterations problem if they change the content (though they could always flush the entire cache of course....).

    Neither of these approaches can help you though if you have real dynamic pages where every request is unique or there are are too many possible pages for caching to be feasible (for example amazon or google).

    1. Re:different meanings of "dynamic" pages by mark_lybarger · · Score: 1

      google i'll take, but i think that even amazon has a cachable amount of data. theirs probably changes once every day, though stock on hand could change more often. Vignette takes a similar caching approach, where each dynamic page can be cached on the webserver. you can have certain modules that are always dynamic or have everything static. once it's served up once, it saves the html and can reserve that same page again static.

    2. Re:different meanings of "dynamic" pages by greg_barton · · Score: 1

      They do change the content, and they do explain how.

      Read this page in the article.

      Specifically:
      The real beauty of these types of caches is that they maximize performance while sacrificing none of the site's dynamic nature. More traditional caching solutions implemented by HTTP servers might cache the full output of a given request, but this approach would be impractical where we need to customize the output to the user's specifications.

    3. Re:different meanings of "dynamic" pages by martindp · · Score: 1

      Another and perhaps better example would be, eBay
      Here caching of the e.g. last bid value etc. is a really bad idea.
      Sure they have lots of other content that is cacheable. Still their main feature is lists of 'products' and prices. Prices that are subject to change any moment.
      Sure one could argue that the page would be invalid the very second it is viewed in the browser, and any cash transaction needs to be reconfirmed anyway. But still it would be annoying/unuseable if invalid prices where more common than uncommon
      If you want to cache this kind of data, you can not cache it on the webserver (closest to the client). The (standard) webserver have no clue as to when data has changed. You'll need to cache them in the database (closest to the data). Here you will be able to build some sort of trigger event scheme to invalidate the pages, and force a rebuild of the specific page.
      This I guess is a bit more complex than keeping a hashtable of keys associated with pre-generated pages and a timestamp for when it was generated.

    4. Re:different meanings of "dynamic" pages by tshak · · Score: 1

      I've always implemented DB request caching by utilizing a cacheKey for that specific content. When that content is updated, only that single cached item needs to be updated.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    5. Re:different meanings of "dynamic" pages by radish · · Score: 1

      Amazon pages are personalised - my page is not the same as your page. Therefore, you can't cache (usefully) entire pages. What you can cache is individual pieces of content (the contents of some of the boxes on the page for example) - you still then have to assemble the overall page on the fly.

      This is what I do for a living, so believe me when I say it is less than straightforward ;)

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

  69. yeah, its toast by andih8u · · Score: 1

    Can't get the page boasting about their server's performance during high traffic loads to pull up. Ironic or moronic?

    --


    slashdot, news for crazed liberal socialist zealots
  70. big difference between 1am and 2pm! by ledbetter · · Score: 4, Interesting

    I remember reading that original article, and yes, I was impressed at the responsiveness of the server. But before they are congratulated so much, consider this. The original story was posted on slashdot at 1AM.. so the initial spike of activity resulting from the linking being in the top few on Slashdot was directly proportional to the number of people on Slashdot at the time. As you can see from their graphs (if they're showing up for you) that traffic spiked, then continued on during the day.

    This time around, the link got posted at 2PM not 1AM, and so far as I can see, they handle this flurry of hits much less gracefully than the previous ones! There are a lot more people online at 2PM than 1AM (all arguments of nocturnal nighthawks and people in other time zones aside).

  71. Re:/. server admins? by KDan · · Score: 1

    Just bringing my 2 cents - it's been real slow lately for me as well. I was thinking the first-posters must be gutted, waiting madly for the bloody comment box to load for a whole 2 minutes :-P

    Daniel

    --
    Carpe Diem
  72. Server performance in 1994 by Simon+Spero · · Score: 1

    By 1994 servers were capable of handing quite a bit more than 30/sec. Back in the old SunSITE days, my experimental Multithreaded Daemon For Multimedia Access (MDMA) could handle over 50/sec (exponentially distributed) even on an IPX running 2.3, and Netscape's server with pre-forking could easily cope with high sustained loads on appropriate hardware.

    Simon

    1. Re:Server performance in 1994 by LilGuy · · Score: 2, Funny

      I remember back in 1986 my Web-Enabled Elmo Daemon (WEED) was pretty lazy. But he sure could take hits. I think somewhere along the lines of 500 a day.

      --

      You're nothing; like me.
    2. Re:Server performance in 1994 by cpeterso · · Score: 1


      I remember back in '95 when my Accelerated Content Internet Daemon (ACID) was cool, but most people recommended that you not handle more than 1-2 hits every 8-12 hours.

  73. Not just slow but gone by abcxyz · · Score: 1

    Looks like they're gone completely -- All I'm getting are can't find server or DNS errors now. Looks like the web server is completely offline.

  74. Hit != Page Request? by dietlein · · Score: 1

    Quote from article:
    Our traffic for the day totaled over 590,000 requests (hits), with over 250,000 of those being requests for pages.

    Since when does a "hit" not count as a "page request"? When I go to http://slashdot.org/, that is both a hit and a page request (for index.pl).

    Just wondering.

    1. Re:Hit != Page Request? by iggymanz · · Score: 1

      If you have a page with embedded images, calls to cgi programs, etc. the browser will make a request for each one....so one page might generate a dozen requests to the web server, for example. I'm surprised their ratio was so *low*...

  75. They seem to be having problems today by codeguy007 · · Score: 1

    I am reading the article but am having lots of trouble going from one page to the next (several minutes of time outs). I guess that just a little ironic. Are people trying to give them problems this time?

  76. I always wondered the rough numbers would be by iggymanz · · Score: 1

    for the "slashdot effect"....if nothing else, this article gives me a good idea of number hits / time period. My little domain's web server runs on a 70MHz sparc 5, and I wondered what it could take if only serving *static* pages (which most of mine are)........so if I put an article on there with a 100k or less page and submitted to slashdot...hmmmmmm, maybe

  77. dynamic content by g4dget · · Score: 1
    Reply pages are dynamically generated (as are many other pages on Slashdot). News content on a site like Aceshardware would be static.

    Even for dynamic content, it seems any reasonable web server should easily be able to generate half a dozen pages per second. Of course, it won't be able to if you do something stupid like put all your content into a database.

  78. web serving has become bloated by Jahf · · Score: 3, Informative

    Seriously ... the numbers aren't that great. I used to admin a DEC Alpha Digital Unix server running at a whopping 300Mhz and it routinely served over 1.5M hits per day along with email, authentication and accounting for over 5,000 people and we rarely if ever saw it over a 0.5 load average. This was 4 years ago.

    It's not apples to apples, since we weren't serving the same set of pages (we had around 500 personal homepages, each with a varied combination of static HTML, images and CGI programs) but honestly, if the numbers in this article are supposed to be impressive, we've grown too accustomed to web server feature bloat.

    --
    It is more productive to voice thoughtful opinions (reply) than to judge (moderate) others.
  79. Thread-per-request model is a bottleneck by mmcshane · · Score: 3, Informative

    Queuing approaches have proven to be much more scalable in other areas - no reason to think it wouldn't work for web servers. Check out SEDA: An Architecture for Highly Concurrent Server Applications for a working implementation in Java that outperformed Apache [insert benchmark caveat here].

    More on event-driven servers that minimize data copies and context-switching here.

  80. Morale of the story by peterpi · · Score: 1

    If you have a really really boring story, it doesn't even matter if you put it on slashdot; your webserver still won't die.

  81. Who cares how long it takes for static pages? by pcraven · · Score: 4, Insightful

    Some static story pages? Who cares?

    It all depends if you are actually doing something of interest.

    Like the comments in Slashcode, most apps go from static, to dynamic, to static caching of dynamic pages.

    At DTN we served up customized portal pages to people with commodity and equity quotes, news, graphs, etc. Since they didn't have any money we had to use a load balanced Pentium Pro and a Pentium II. The app had no problem serving the load, and it was fast.

    Now that I work for companies that have money, our apps run really slow. Developers get expensive machines and don't know how to optimize any more.

    1. Re:Who cares how long it takes for static pages? by greg_barton · · Score: 1

      Obviously, you didn't read the article.

      Try reading this page

  82. Second this. by FreeLinux · · Score: 1

    I've complained about a *major* degradation in performance since the move but, all I get is modded to -1. Seems that it is unacceptable to question the Slashdot admins.

  83. 11 hits per second by thepler · · Score: 1
    I haven't read the whole article yet, but I saw this:
    So, when the system was serving roughly 11 requests per second, the CPU was nearly 75% idle.
    No offense, but 11 hits (or even page views) per second is literally nothing. I'm surprised that the box even broke a sweat.
  84. Wow, their magical scaling powers are rad by JasonUCF · · Score: 1

    The page cannot be displayed
    The page you are looking for is currently unavailable. The Web site might be experiencing technical difficulties, or you may need to adjust your browser settings.

    YHBT. YHL. HAND.

  85. Re:Maybe by Maeryk · · Score: 1

    Loved your work on the soap opera. Love your album, too! I listen to it every day!

    Do me a favor, fax me a copy of your signature, so I can tape it to the album and sell pirates of it and photocopies of the cover on Ebay as "signed collectibles" okay?

    Thanks!

    ta!

    Maeryk

    --
    Feminine Protection? What is that? A chartreuse flame thrower?
  86. Pshh.. I smoke more hits a day then that web serve by cp5i6 · · Score: 1

    though this one would be alot harder to beat :-P

  87. Not so impressive by autocracy · · Score: 1

    Notice that on their site the graph indicates that the page was linked on Slashdot at around 1:30 AM. Their actual peak traffic wasn't until 8 hours later. So instead of being truly hammered by the /. effect, they were able to watch it trail off through the day, probably with a lower number of hits than they would have had if, say, the referring article were posted mid-day. I suspect that if the refering link was posted in /.'s front page during a peak traffic time things would have been far heavier. Basically, as far as Slashdotting is concerned, this was probably a best-case scenario. How many people actually scroll down more than a fold's worth when reading /.? They probably missed out on a huge Slashdotting because of that. Lucky them.

    --
    SIG: HUP
  88. static verus dynamic by Twillerror · · Score: 1

    Well I can't read the article because it has been slashdoted, but I wanted to bring up a point about generated pages versus static pages.

    Slashdot is db driven, but I believe that a static page is generated on an interval to deliver better performance. I'd like to see how
    well any site could perform if they regenerated every page each and everytime.

    I develop and support and large internal application that is highly database driven, in some cases we can cahce queries, but we always have to generate the page on the fly, just by the nature of the system.

    In this case the ways to improve performace is to cut back on the html outputed ( sometimes by limiting views of data ), have a cluster of servers to reduce requests per box ), and then optimize the crap out of every db request.

    On a side note it would be interesting to see how mySQL and Postgres compare to Oracle, DB2, and SQL Server under real world high stress sitatuions, my gut as a DB is that they wouldn't come anywhere close.

    I like Anadtech, but I just feel this is them touting themselves and really has no impact on most web developers. When you are serving mainly static content without any kind of real logic ( meaning you have to query a database, scroll though results, add numbers, determine who the user is, and generate all kinds of thing dynamically ) you don't really have any room to brag.

    Plus, why the hell are they using one ultra expensive Ultra sparc machine. You could get one box doing load balancing, get a bunch of cheap 1 ghz pIII boxes and smoke you ultra sparc.

  89. Just caching queries? by dzeanah · · Score: 1

    I can't get the article to load past the second page, but it sounds like they've just got their web server configured to cache queries to the database so that it can respond without hitting the disk.

    Sounds like the same thing MySQL 4.x does. I'm running a site that generates all the content on the fly from a MySQL database, and the upgrade from 3.23.54 to 4.0.9 resulted in a situation where half of the queries that come in are anwered by the query cache, and I saw my server utilization drop from 1.5-2.5 to .3-.8.

    Significant and worth doing, but I don't know if their solution is all that special. Just upgrade MySQL. ;)

  90. Page two timed out for me. by paynter · · Score: 1
  91. this is all pretty obvious by consumer · · Score: 1

    He says you should avoid tying up database connections in processes that aren't using them. With mod_perl we do this by using a reverse proxy. You could do the same with PHP. He also says you should cache. Well, duh. It just seems odd how he puts this in terms of "Java saved us" when in fact these techniques are universal and any experienced developer would be using them by now.

  92. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  93. Good Article by licketyspit · · Score: 1

    the only thing that bothered me about it was that they didn't bother to touch on any of the methods for speeding up access to the database when the queries actually need to be run every time, such as when the ResultSet isn't so static. Perhaps a method that was relatively inexpensive for determining if a resultset had changed since it was cached. I'm impressed with the stats, I'd really like to see how linux/sparc would compare to solaris on the same machine.

  94. How else? by yerricde · · Score: 1

    Of course, it won't be able to if you do something stupid like put all your content into a database.

    How is a developer supposed to design a Slash/Scoop/Nuke style board without storing the comments in a database?

    --
    Will I retire or break 10K?
    1. Re:How else? by g4dget · · Score: 1

      Store them in the file system, in a DBM file, in memory, or in an object database. Relational databases are overkill for most web applications and were never designed for that kind of use.

  95. Their server is dead now... by gardol · · Score: 1

    lol...
    I love the /. effect.

  96. That's great, but it's down now by digitalgimpus · · Score: 1

    That's great that they handled being /.'d that well... but I can't reach them now...

    Back to the drawing board.

  97. Too Funny.... by ISPTech · · Score: 1

    "The operation timed out when attempting to contact www.aceshardware.com"

    --
    This space intentionally left blank.
  98. Ecstasy? by yerricde · · Score: 1

    Multithreaded Daemon For Multimedia Access (MDMA)

    First of all, did your "MDMA" web server support dynamic content at those rates?

    In addition, I always thought MDMA stood for 3,4 Methylenedioxy-methamphetamine, or "Ecstasy" for short. Was ecstasy around back in 1994 when you named your server?

    --
    Will I retire or break 10K?
  99. Yes, but we are back, stronger than ever! by Openadvocate · · Score: 1

    but we are back, stronger than ever!
    It's nice to see a article like that, just what I was looking for

    --
    my sig
  100. Bandwidth? by gypsyx · · Score: 1

    They must have lousy bandwidth then. I can't get the page to ever finish loading. Just getting the initial HTML into my browser seems to take forever. I'm not impressed at all with their Java web server. I can serve pages faster with my NeXT Cube (M68040 CPU).

  101. Ace HW needs a clue by LunaticLeo · · Score: 3, Informative

    Ace's Hardware needs to research real servers before talking about their "scalable" servers. Their numbers are really saying that their box performs like a dog.

    For those of you interested in this topic here is a few pointers and words of wisdom.

    Server scalabilty and performance has three basic metrics, thruput (urls/sec), simultaneous connections, and performance while overloaded. Of course, you could add latensy but I'd argue that with the correct design latency is directly proportional to the real work you are doing, bad design insertes arbitrary waits.

    I know of a HTTP Proxy by a large ISP that does user authentications & URL authorization (re: database), header manipulation, and on-the-fly text compression at 3000 urls/sec for 2000-4000 simultaneous connections and maintains that performance under load by sheding connections, all this on a dual 1GHz Intel PIII box running a Open Source OS that starts with "L". That is a maximum of 260 Million URL/day, three orders of magnitude greater performance than Ace's Hardware stats.

    The simple answer to the question "How do I create a scalable fast network server?" is Event-driven GOOD & Threads BAD. Event driven network communication is two to three orders of magnitude better performing than thread/thread-pool based network communications. See Dan Kegel's C10K web page. That means you must use non-blocking IO to client sockets and databases. Once you accomplish that small feat, dynamic content just consumes CPU; with 2.8 Ghz Xeon processors you have plenty of cycles for parsing HTML markup or whatever. Threads cause cache thrashing, and context switching. While thread programmers don't see the cost in their code, just read the kernel code and you'll see how much work HAS TO BE DONE to switch threads. Event driven programming just takes some state lookups (array manipulation) and a callback (push some pointers onto the stack and jump to a function pointer).

    Desgin is FAR MORE IMPORTANT than which runtime you use (execution tree, byte code, or straight assembly). I have done some very high load network programming with Perl using POE.

    Python has Twisted Python

    Java has the java.nio and the brilliant event/thread hybrid library SEDA by Matt Welsch.

    I am also looking into the programming language Erlang which builds concurrancy and event driven programming into the language. Further, Erlang is used by some big telco manufacturers to great effect (high performance and claimed 99.9999999% nine-nines reliability on a big app).

    --
    -- I am not a fanatic, I am a true believer.
    1. Re:Ace HW needs a clue by PureFiction · · Score: 1

      Event-driven GOOD & Threads BAD

      But you failed to mention that for N-way SMP servers Event-driven + few threads == BEST.

      If you want to utilize the performance available in a multiprocessor high performance network server you actually need to use threads, although in this case each thread is handling a set of events. 2 threads per CPU max is a nice rough measure.

      This is the nasty little secret you fail to mention with the twisted python implementation - SMP will be underutilized.

      SEDA is very cool, but forces a particular granularity of messaging via the queues that I fidn annoying and can cause unnecessary work when it is hard to break processing of events into discrete stages.

      At any rate, threaded programming is here to stay. We just need to use it correctly (thread per connection is DEAD BEEF)

    2. Re:Ace HW needs a clue by LunaticLeo · · Score: 1

      But you failed to mention that for N-way SMP servers Event-driven + few threads == BEST.

      Agreed. My defense is two fold:
      1) Event-driven IO + a few worker threads is still requires the fundemental paradigm shift (ugh...yes I said it) to an event-driven state maintaining framework.
      2) In my post, I had already written alot and I just wanted to make a point about the fundemental design choice that leads to performance.

      SEDA is very cool, but forces a particular granularity of messaging via the queues that I fidn annoying and can cause unnecessary work when it is hard to break processing of events into discrete stages.

      I think you are misreading the SEDA design. Breaking a pipeline into logical stages is good design, but it doesn't need to be a deep pipeline and the stages don't need to be broken into even chunks (in terms of CPU usage). As an example, Apache is broken into approx 7 stages. They are something like url parsing, authentication, authorization, content handling, logging, and send response. The content handling stage is by far the biggest. In SEDA this fat stage would potentially accumulate more threads in it's thread pool.

      I think you've pronouced the death of thread-per-connection badness to early. Java just recently got the ability to do asyncronous IO in ver 1.4 . An nearly every book on C++ and Java teaches handling concurant sockets with "Just create a thread and ...".

      BTW, to utilize the performance available in a multiprocessor high performance network server with a single threaded event-loop program is not that hard. First, you start two event-loop programs. If you want to have only one TCP listen socket, instead of using and external IP load balancer, you can have one of the processes do the listening and pass accepted connections to the other process via a Unix Domain Socket. BTW, Apache does this. However, I still concider symetric multiple processes a variation on a single mult-threaded process (or vice versa).

      --
      -- I am not a fanatic, I am a true believer.
  102. Slashdot Handles It Better... by suwain_2 · · Score: 1

    What I find much more interesting than this article is the way Slashdot handles the massive load. I might be a little off, but I believe Slashdot essentially has the main page updated every minute (five minutes?), so if you just load the main page, you're getting a static document, which is *much* faster.

    I've always thought more sites should do this. Why not have the pages you can get away with be static (updated every couple minutes for a 'real-time' feel), and only have the pages that need to be dynamic be generated on the fly? I was playing with ab (the Apache benchmark tool) on one of my computers, and I couldn't believe the difference -- loading a static page, I got something like 100,000 hits (I don't remember the time period); PHP got about 5,000 (unknown, but same as previous, time period). My numbers could be off, but assuming they're not, it would be 20x more effective to have the page generated every few minutes and saved as a static page, at least for high traffic sites. (For low traffic sites, this could probably consume *more* resources...)

    --
    ________________________________________________
    suwain_2 :: quality slashdot p
    1. Re:Slashdot Handles It Better... by vanguard · · Score: 1

      I'm also interested in /. but I don't think they serve to much purely static content. I know that my home page is customized for me. I know that a lot of people choose which topics they are interested in.

      Yeah, there's something static about it and they aren't doing a select count(*) from whatever to display how many comments people posted for each page hit but to call it a static page would be off target.

      Vanguard

      --
      That which does not kill me only makes me whinier
  103. Can you run, say slashdot or ebay with static? by ParamonKreel · · Score: 1

    You could read in your comment file everytime and then push out a new comment html file each time a comment is made. That woudl be static, but that would be a pain in the ass to write when databases alread exists, and it won't scale as well as a database either.

    They're showing how to make DYNAMIC content scale. Who cares if you can read from disk faster than you can push it down a pipe, that's just a different version of NFS. What they're talking about is how to make somthign worthwile scale, such as say how ebay makes their dynamic auction information scale by caching the listings and keeping the actual auction pages updated realtime. Dynamic is much more powerful and interesing and thus is a good topic for examniation and discussion, i.e. "Stuff that matters."

  104. 4 ms? by suwain_2 · · Score: 2, Interesting
    The load time, copied-and-pasted, from the bottom of their site:

    138974 ms

    A little over their 4 ms goal. Specifically, 138,970ms.

    --
    ________________________________________________
    suwain_2 :: quality slashdot p
  105. allmusic get 2.3 Million hits a day on one box... by cherrypi · · Score: 1

    Allmusic.com runs off a single box using M$ and an ISAPI DLL to deal out the pages against a Foxpro database. We have the largest implementation of Foxpro known, lol. 2 mil ain't bad for an M$ setup. In fact, it's probably some sort of record!

  106. Summing up the article. by shurdeek · · Score: 2, Interesting

    Basically, the whole article has 1 message: you should cache stuff. I couldn't agree more. Why doing a database request every time a page is hit? Even if you're going to show the same information say 1000 times? By combining dynamic and static elements, the "server load" part of the slashdot effect can be eliminated, I think slashdot also does this, but differently.

    Obviously, if you don't have enough bandwidth, you are screwed anyway, but usually it's the server load that is the problem.

    MfG shurdeek

  107. Already Slashdotted .. by denisbergeron · · Score: 1

    It's friday :-)
    They really don't want to post an article like this one on a friday !

    --
    Ceci n'est pas une Signature !
  108. It's the pipe, folks. by aussersterne · · Score: 3, Insightful

    As a bunch of people have pointed out, it is unlikely that the /. effect is a matter of "crashing" servers. It is much more likely that most of the "slashdotted" sites on the front page on a given day involve a server which is doing just fine and a bandwidth pipe which is seriously about to burst.

    You can saturate most any small-business-affordable pipe with a Pentium classic machine as a Web server. Or to put it another way, there's no point sticking a dual-P4-Xeon Web server with 4GB memory and a RAID-5 on a DSL line.

    The computer I'm using right now (a PIII system) could run Apache very nicely in the background and would likely survive quite a hitrate without too much trouble. But if even just a few thousand people were to hit it all at once, there would be a traffic jam, some people wouldn't get served, and the ISP would probably close me down, because I'm only sitting on a 256k pipe.

    --
    STOP . AMERICA . NOW
    1. Re:It's the pipe, folks. by drunkenbatman · · Score: 1

      i'm kind of curious about the size of my pipe... ie, i've put up a 30 meg movie of zooming around in OSX's accessibility features for a friend, how many people would have to hit it to really hurt the server? It's at:

      OSX_zoom

      If you've got a decent connection and don't mind curling/downloading it, it'll give me a better idea of the load it can handle before i start putting up different .mov tutorials for people over the next month.

  109. Great article... by JemalCole · · Score: 1

    ...Too bad the server keeps timing out. (No, really!)

  110. still impressive, since they're back up by m0i · · Score: 1

    Whatever you can say about them being slashdotted, they are apparently squeezing the max out of their box, the site went down while they did some tuning and it's now back online; according to the article, they were allocating only 1GB out of 2 available for their current needs; probably that they had to use the whole 2GB to survive /. So, kudos to them, they survive at peak time, with a few links from slashdot frontpage. Time to finish reading the NSF (not so f..) article!

    --
    have you been defaced today?
  111. So by putting 5 links... by JHelgie · · Score: 1

    You intend to get that number up to 105%?

  112. big hairy deal... thttpd does this by Lumpy · · Score: 1

    The best attack is thttpd's bandwidth throttling.. I have seen thttpd take a sound pounding serving pages and it heppily throttled back everyone to a dull roar. BUT serving a nice steady 30 pages a second is nothing... when you get 90,000 requests a second in bursts, espically when the story first hits the front page...

    Nothing but a gigabit ethernet connection can even come close to handling that.. and last time I checked a T-1000 line was not an option on internet-1

    --
    Do not look at laser with remaining good eye.
  113. Second time lucky! by BesigedB · · Score: 1

    It the images are not loading (reliably), the pages come out slow, but the generation time (bottom left) has never been over 3ms. Perhaps its a bandwidth problem they have.

  114. Re:boxii? by loraksus · · Score: 1

    lol. +5, so true though.

    --
    1q2w3e4r5t6y7u8i9o0pqawsedrftgthyjukilo;p'azsxdcfv gbhnjmk,l.;/
  115. Good thing they weren't running DotNet by ispel · · Score: 1
    You may not disclose the results of any benchmark test of the .NET Framework component of the OS Components to any third party without Microsoft's prior written approval.

    - DotNet Framework Runtime EULA
  116. Time to clean up your closet. by twitter · · Score: 1
    I saw a report about a 200Mhz (?) PC running Windows 95 and with about 30 hard disks, that also seemed to do very well under the /. effect.

    and then you woke up.

    Geeze, I actually responded to a slashdotting troll. What a waste.

    --

    Friends don't help friends install M$ junk.

    1. Re:Time to clean up your closet. by ites · · Score: 1
      Actually, no troll. This is the real thing, only I was off - no 200 Mhz but 120 Mhz.

      Date sent: Wed, 02 Oct 2002 10:03:09 -0500
      From: Dave Cole ...
      Subject: Slashdotted Xitami server
      To: support@imatix.com

      I run Xitami on a little p-120 win 95 server at my house. last night
      it got posted on slashdot It has since the slashdotting been
      subjected to an incredible load 96,000+ hits and 1,451,000,000+ MB
      outbound in 12 hours and is still going strong! this speaks volumes
      about the stability of the xitami server. You have a great product.

      The address of my Xitami server. http://fileserver.coleskingdom.com/

      The slashdot article that lead to the traffic jump http://slashdot.org/articles/02/10/01/0220213.shtm l?tid=167

      --
      Sig for sale or rent. One previous user. Inquire within.
  117. CPU bound==something very very wrong by rufusdufus · · Score: 2, Informative

    This story is dopey. If you have a web server and it is hitting a CPU bottleneck, you have done something wrong.

    Ok, if the server actively plays chess against a hundred people, I'll let you be cpu bound.

  118. Caution buying the pdf by chworktap · · Score: 1
    I actually bought the pdf (for $2) but their server, which had no problems when it was taking my money, hasn't been able to actually give me the document yet!

    Brian sent me the pdf in the mail, though -- so don't be afraid to buy it :-)

  119. How many per second? by steveha · · Score: 3, Informative

    They said that the peak load was 11 hits per second, with 4 pages being served. They also said that their CPU was 21% loaded to serve this much traffic.

    This says nothing about what they can serve under ideal conditions; this is what they actually served up during an actual slashdotting. If you want to max out their server, you will need to get more /. readers to hit them all at once, or perhaps they need a bigger pipe connecting them to the Net.

    Read the article; on ApacheBench with one particular page they tested, the server tested out at five dozen pages served up per second.

    I don't know about you, but I was somewhat impressed by all this. A $1000 Sun does seem to have been a wise choice for them.

    steveha

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
  120. Re:hahaha!!!... sure dude... by Bert64 · · Score: 1

    But what would the drives after number 24 (Z) be called?

    --
    http://spamdecoy.net - free throwaway anonymous email - avoid spam!
  121. I am sorry, but this is really just not impressive by bloxnet · · Score: 3, Insightful

    I hate to do this, and get into some kind of "look at my l33t skills" type thing...but seriously, those numbers are just nothing to be impressed with. As several people have pointed out, usually the limitation on a well configured server is the bandwidth available. I have a buddy who runs a few adult sites, and I go ahead and keep his machines updated, optimized, etc, etc. On one web server alone, with simply rebuild Apache with a higher HSL and streamlining only essential services this *one* server is handling an average of 16,000,000 hits per day. (avg approx. 16,000,000 hits, 5,000,000 pageviews, 450,000 unique visitors per day). In fact, only last month did we set up a separate database server in anticipation of him getting even more traffic (I wanted to separate the web server from the db server esp. if we were gonna move to load balancing)...even still the cpu load was consistently low and the site was/is serving dynamically generated content (php) and is all driven by a mysql content management system. I have yet to even max out the usage of the server and do some ulimit type stuff or hard adjustments via kernel changes.... so what is the big deal about this article. I think it would be good to put up an article about how to optimize your web servers both in layout and actual configurations to allow for Slashdot levels of traffic. I doubt this will happen, just as the mirroring content on featured stories to help ease bandwidth or other similar suggestions. The saddest part is that once you spend the time to really optimize a machine or machines...it takes far less time to maintain them.

  122. So we /.'d their UltraSparc box... by Dirtside · · Score: 1

    After what we've done to their server, Looks like the Sun is a mass of incandescent gas, after all :)

    --
    "Destroy science and religion. Science would re-emerge exactly the same; but not religion." - Penn Jillette, paraphrased
  123. Content expiration by ttfkam · · Score: 2, Informative

    This is why people should set an expiration time on their static content. If, for example, I set up the images to expire one hour from the access time, multiple visits to the page (and images shared between multiple pages) would only be requested once. An ISP's proxy servers down the chain would only help in this regard.

    In addition, for static content, "LastModified" is easy to compute. Clients can request a page, send an "If-Modified-Since" header with the timestamp of the static item, and if the item hasn't changed, return a 304 response and no data.

    The same can be done for dynamic content, but it requires a bit more work. Most web servers do these things for static content out of the box.

    As was said in the article, the fastest request is the request that never has to be made.

    --

    - I don't need to go outside, my CRT tan'll do me just fine.
  124. Covered in the article by ttfkam · · Score: 1
    In the Ace's Hardware article, they benchmark their Java-based web server against Apache 1.3.x and Apache 2.0.x. The Java-based server, Resin, beat Apache easily.

    As for heavily threaded apps, no leading Java servlet container/web server uses a 1:1 model of request to threads: not Tomcat, Resin, Weblogic, WebSphere, nor Jetty.

    Queuing approaches have proven to be much more scalable in other areas - no reason to think it wouldn't work for web servers.


    Too late. It's already been done for months now. As JDK 1.4 comes into greater use, you will see more and more of these offerings using non-blocking I/O (read: event-driven) as the default HTTP handling method.
    --

    - I don't need to go outside, my CRT tan'll do me just fine.
  125. Not the same by ttfkam · · Score: 1

    If memory serves, Slashdot has a small farm of boxes -- multiple boxes dedicated to Slash and a couple dedicated to MySQL.

    Ace's Hardware runs on a single box whose hardware is slower than any one of the Slashdot boxes.

    --

    - I don't need to go outside, my CRT tan'll do me just fine.
  126. I/O Bound by ttfkam · · Score: 1

    Most sites aren't CPU bound; They're disk I/O or memory bound. Once you exhaust RAM, you swap to disk, and performance drops precipitously. Once the database must read/write to more sectors than can fit in RAM, page faults ensue, and performance drops precipitously.

    Their solution not only saves CPU, but I/O workload as well.

    --

    - I don't need to go outside, my CRT tan'll do me just fine.
  127. Caching Makes Things Faster by eGabriel · · Score: 2, Interesting

    The article pretty much said two things:
    -- Caching objects saves a database hit and makes things fast.
    -- Resin scales better than Apache.

    That's great and everything, but it really doesn't help anyone else. Ok, so now I want to apply this object caching to my own application. Where does this cache live? If I'm not running Resin, then I guess every apache process has one. How do I handle dirty objects which need to be written back to the DB? What if they have been dirtied in two different processes? If I am using some sort of service external to the web application to do the caching, how fast is that? Faster than the database? Perhaps, but now it has to scale too, and it STILL has to consult the database, only for writes, which are worse than reads.

    This happened to work for their application, but in order to be applied more generally, it needs lots more explanation.

    Any object persistence mechanism which is smart enough to handle caching in a read-write system with any level of configurability is going to be a large, complicated piece of software itself, and will have its own issues to bring to the table.

  128. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  129. What about the OS? by nemaispuke · · Score: 2, Insightful

    I have read both articles from Ace's Hardware about how they built their "killer" web server. And in all that talk about the server and the applications that run on it they make no mention of what they did to the OS and the machine itself other than putting faster drives in it. They show an Ultra 30 as a server running a GUI, if I wanted "killer" performance CDE would be the first thing to go! They also don't mention any tweaks to improve system and network performance (and there are a few I can think of). Hell I'm willing to bet they didn't change the jumper setting on the Blade to get the memory to run at 100 MHz over the default 84 MHz as shipped! they also don't do anything like multipath or trunk network adapters (which you could easily do with Solaris). It looks like they took a machine out of the box, did a default install of Solaris, loaded applcations and "plugged it into the net"! I wonder how much better their performance would be if they tuned their server like Colin Bitterfield (of Sun Microsystems) did?

    1. Re:What about the OS? by Hyped01 · · Score: 1
      Hi,

      Keeping in mind I havent read the actual article, two things I can think of that at least pertain to your comments... (1) I've seen a web server that was pretty much a boot loader and a web server that included it's own (though limited) network and file i/o routines. So, though I dont know about this particular case, it's possible to make one that doesnt run on an OS. The UI was text based but "graphical" (ie: status bars, etc - sorta like the old "graphical" text mode PC GUIs). (2) a GUI doesnt slow down a decent web server noticably (assuming the machine wasnt borderline maxxed on CPU or RAM). It's the usage thereof that determines whether that GUI is a problem. I use Lotus DominoGo Webserver and though it is a GUI app, I've yet to notice any measurable difference between having it log to the GUI (in an ever expanding selection box) or not. In "dont log to gui" mode, it just updates the # of connections served, current, and kb sent about once a second. (Regardles, to date I havent found any web server that is faster, even approaching 1/4 of it's 4,000 connection per CPU limit).

      - Rob

      --

      WebMaster:
      BinFeeds
      XXX Thumbnailed Image Newsgroups but

  130. File systems are databases too by yerricde · · Score: 1

    I did the site with no database whatsoever. Articles were stored in one XML format on disk, comments another.

    So in other words, you stored the XML files in a hierarchical database called a "file system". Assuming one comment per file, how did you handle the half kilobyte of non-gzipable HTTP overhead that each XSLT-driven comment view incurs?

    Assuming multiple comments per file, how did you handle locking the comment file so as to ensure that only one server process writes to a given file simultaneously?

    --
    Will I retire or break 10K?
    1. Re:File systems are databases too by TobiasSodergren · · Score: 1

      Enterprise database servers often has internal file system routines that bypass the operting system, to optimize the disk access and ensure that no data can be lost due to file system caching. At least on operating systems supporting raw devices.

  131. Different kinds of databases by yerricde · · Score: 1

    > How is a developer supposed to design a Slash/Scoop/Nuke style board without storing the comments in a database?

    I said "a database". Keep in mind that there are four main models of database structure: ad-hoc flat files, hierarchical, network, and relational. Here are some methods you suggested:

    Store them in the file system

    That's a hierarchical database, with keys called "paths" and "filenames". Some Wiki implementations do this, and I can see how it would work in a Slash clone. Here, the file system has to provide an atomic way to generate a new key. (mkstemp() is atomic; mktemp() and tempnam() are not.)

    in a DBM file

    "Data Base Manager"? Isn't much of MySQL just an SQL frontend to DBM?

    in memory

    Relying on memory as the main store of data fails the D (durability) in ACID. However, use of memory as a cache in front of a filesystem does provide useful gains.

    or in an object database.

    I'm not too familiar with object databases. To me, they seem to map the "network model" into a programming language's syntax. Right?

    Relational databases are overkill for most web applications

    I'll agree that heavyweight SQL databases are overkill for many uses that they're put to. Heck, the name "Oracle" almost sounds like "Overkill".

    --
    Will I retire or break 10K?
    1. Re:Different kinds of databases by g4dget · · Score: 1

      I think from context and common usage, you can figure out that by "database", I was referring to "relational database like MySQL, PostgreSQL, Oracle, or DB2". If you couldn't, welcome to the real world, Data.

  132. Some of you are Missing th BIG Picture! by buttkick · · Score: 2, Interesting

    It's not about hits per second, it's about efficiency, and I think he (Brian I guess) did it very well. Some stupid idiotic slashdotters say, my servers handle this and that, but the point is, HOW MUCH DOES IT COST? HOW MANY MACHINES DOU YOU NEED? WHAT OS YOU WILL USE? WHAT'S THE BANDWITH SPENT? Let's not forget also the attitude to optimize the content to the modem users, well they also need to be taken in consideration. About the cache use, very intelligent, WE USE CACHE EVERYDAY all the time. Let's use it with efficiency. The 2 points where maybe some people are missing are, APACHED WAS ASS KICKED in the ass by this server RESIN, honestly I've never heard of it, I'm off web development since a long time... and PHP and APACHE can't be a good combination when things get ugly, and you need scalability. That's what I think was the most useful information, along with the IPC info. Well I'm impressed, It loads fast for me and I have a Half T1, so I could se if it was slashdotted, like somebody said, if /.ed it's a bandwith problem, never the CPU SETUP. Kudos to Solaris with it's threads and Sun servers(Blade isn't even a server!! IT's a workstation) with it's architechture. And I tought JAVA was slow, maybe for other uses, but in web development, it seems to be the best option yet.

  133. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  134. /. measure of the /. effect ? by frx · · Score: 1

    Talking about the /. effect, I think it would be amusing to have the /. clickthrough data displayed as a graph (e.g. clickthrough/min over time) for each link in a story (at least for the links in the initial story).
    One usage of these graphs would be a popularity measure of the stories over time.

    --
    --f
  135. Re:hahaha!!!... sure dude... by Blaskowicz · · Score: 1

    did your hear about RAID?

  136. very impressive for a server that runs on java by Utopia · · Score: 1

    I am surprised that java performs so well.
    However they seems to be limited by their bandwidth.

    PS: My site runs on a 700 MHz 4-proc Pentium III with Win2K, ASP.Net & SQL Server 2000.
    Cached Pages Perf is 0.15 ms
    Dynamic Page Perf is 20 ms

  137. They discovered connection pooling, and caching... by malakai · · Score: 1

    While i'm happy for them, this wasn't exactly rocket science. I'm surprised they had to roll their own connection pooling. This is standard in ASP/ADO apps and the new .Net apps. Caching the data is routine code you will find in most highly concurrent dynamic sites. Though, "caching" now adays goes a step further, generally XSL is used to build the page, and the result of the first XSL transform is cached to the file system. Some pages then go ahead and allow for an optional 2nd transform which puts in _very_ dynamic content, which can be shed/loss in the event of a traffic spike.

    All in all, i agree with 90% of the posts, preventing a slashdotting is more about bandwidth then software/server performance. Yes, obviously hacked togeher asp/php pages that open and establish a connection to the database _per_ page will prolly die before bandwidh, i think even the newbiest of programmers recognize this nowadays.

    This article made me yawn, but i bet we just paid his operational cost via add impressions for the new 5 months.

    -malakai

  138. Re:hahaha!!!... sure dude... by Bert64 · · Score: 1

    Sure i did, and last i checked windows 95 didnt have very comprehensive support for raid hardware and no software-raid atall.

    --
    http://spamdecoy.net - free throwaway anonymous email - avoid spam!