Scalable Network Programming
Why care about high performance network code?
Apache ist fast enough for most things. But if you read Slashdot a lot, you will see that the sites they link to are often down, because they can’t handle the load. Slashdot itself uses 8 P3/600 with 1 Gig RAM and 10k rpm SCSI disks. www.heise.de uses 4 P3/650 with 1 Gig RAM. ftp.fu-berlin.de is an SGI Origin 200 with 2 R10k/225 with 1 Gig RAM and 10k rpm SCSI disks. It’s obviously possible to buy performance with more hardware, but how can we make sure the software is not the bottleneck?
Why is it important to handle many connections?
I was called by an internet toy shop once. It was a rainy day in December. They are making most of their money in the Christmas season.
They called because their web server was under attack. Some sort of distributed attack had opened 100.000 HTTP connections to their web server. This caused 20.000 Apache processes to be spawned on each of their load balanced Solaris back-ends. The machines were desparation swapping. It was impossible to buy anything from them. I think they were actually afraid of bankruptcy.
Related Scalable Network Programming: memory management unit, high performance network, internet toy, performance factor, apache processes, sgi origin, christmas season, network programming, bottleneck, toy shop, rainy day, gig, rpm, benchmark, elf