|
Falvotech.
Conquering the world is easy — what do you do with it afterwards?
|
|
A fellow co-worker handed me a lead to Joe Dog Software's Siege tool, a website load measurement and simulation tool. I decided this would be the perfect tool to measure Unsuitable's performance. Previously, I'd reported that it delivered 20 requests per second, single-threaded, and measured very unscientifically. I am pleased to announce that Siege reports vastly superior numbers. See report below.
$ siege -f urls.txt -c 250 -i . . . diagnostic output elided . . . Transactions: 47613 hits Availability: 100.00 % Elapsed time: 366.20 secs Data transferred: 325.27 MB Response time: 1.39 secs Transaction rate: 130.02 trans/sec Throughput: 0.89 MB/sec Concurrency: 180.16 Successful transactions: 47613 Failed transactions: 0 Longest transaction: 19.04 Shortest transaction: 0.02
If I'm reading this right, it looks like Unsuitable can handle 180 concurrent users with an average response time of under 1.5 seconds1. Under this kind of load, Unsuitable was able to retire about 130 requests per second. Measurement demonstrates that Unsuitable exceeds my initial, back-of-the-napkin estimation of its performance by a factor of 6.5. For comparison, I decided to see how it compared against fetching a single, static content request. Surely, the static resource would be faster, right?
$ siege -c 250 -i http://www.falvotech.com/ . . . diagnostic output elided . . . Transactions: 39709 hits Availability: 100.00 % Elapsed time: 290.39 secs Data transferred: 291.71 MB Response time: 1.31 secs Transaction rate: 136.74 trans/sec Throughput: 1.00 MB/sec Concurrency: 179.17 Successful transactions: 39709 Failed transactions: 0 Longest transaction: 14.02 Shortest transaction: 0.01
Wrong.
As you can see, Unsuitable meets every conceivable performance requirement, despite its O(n) implementations of sort algorithms, full-table scans, and all the fork-overhead implied by plain-vanilla CGI handlers. Rewriting it as a dedicated, persistent, web application using more esoteric protocols like WSGI or FastCGI buys nothing in performance, for these tests clearly illustrate the web server itself as the bottleneck to further performance gains.
1 Worst-case response time appears to have taken 19 seconds; however, without a weighted average, it's impossible to estimate how often these long-duration responses occur. Based on my finding the blog completely responsive in a browser while the siege continued, I wager it couldn't have been very often at all.
Regrettably, I am feeling sick as a dog at the moment. I presently suffer from severe nausea and acid reflux, which makes even the simplest of tasks frought with the danger of vomiting. I cannot eat like I'm accustomed to, as this only causes the fluid level to rise. You know those carnivorous pitcher plants, which fill themselves with digestive fluids in the hopes that a wandering insect will fall in? I imagine I feel very much like them, as the fluid level in my throat pretty much hovers around my Adam's apple, waiting.
As you might expect, no blog update of any significance shall be forth-coming this week. With a bit of luck, next week will see more productivity.
On an unrelated note, my apartment complex will undergo Vikane fumigation from August 24 to August 27. Hence, visitors will find my blog inaccessible during this time. Let this paragraph serve as official notice.
Happy Birthday, Unsuitable! One year ago today, I announced Unsuitable to the world. May Unsuitable see many more years yet to come.
Viewing articles on most blogs implies receiving a plurality of advertisements and other distractions as well. This reduces both the reader's attention span for the material presented, and valuable screen real-estate. Unsuitable renders an article with a minimum of distraction. With more room on the screen for content, I can provide a nicer layout that makes reading easier for the consumer.
Consumers rarely seek new information from their primary sources. Over the years, particularly as newspapers and magazines have revised their business models to include direct delivery as a part of their subscription program, consumers have grown accustomed to having information delivered directly to them. Unsuitable caters to this established custom by offering an RSS feed
. Readers may use whatever aggregation software they please to view Unsuitable content when it becomes available, without having to visit a plurality of websites.