Httperf

For more information, please visit the Httperf main site or checkout the articles below.

Here's a link to my httperf fork, for those interested -- github.com/jmervine/httperf


Articles on Httperf

Notes on Performance Testing

A couple weeks ago I did an ad hoc talk at the LAWebSpeed Meetup, hosted by MaxCDN, on general performance testing in the web world. I was asked to put together a list of the tools I spoke about and some brief notes on them...

Forking in Node.js / Threading HTTPerf with HTTPerf.js

Occasionally, we want to generate load beyond what a single httperf thread can handle, especially when working in Node.js, where the connection limits can get very high. The code sample below does that, but also serves as an example of how to use the cluster module to fork actions and collect the resulting data. Enjoy!

Benchmarking with HTTPerf.js and NodeUnit

I covered this in the HTTPerf.js README a bit, but wanted to take a deer look at how I'm using HTTPerf.js to benchmark web applications.

Simple Rules for Stable, Performant and Maintainable Apps

Here are some simple and basic rules I've found for building applications that are maintainable and perform well, both in speed and stability. These rules, at one level or another, can apply to smaller modules and libraries, scripts, as well as fully featured large scale applications (both web and otherwise). In this post I will focus more on web applications, since that's where I've spent most of my time. At a higher level, they should apply to almost all areas of software development.

HTTPerf.rb Example

Here's an example of a simple script using HTTPerb.rb. It's a quick and dirty script used for getting quick differences between changes.

HTTPerf.rb 0.3.11 Released

Adding tee support, which will print any httperf (both STDOUT and STDERR) output to STDOUT while running the process.

Automating Performance Testing with httperfrb

Here I'm going to cover basic usage for httperfrb, which I wrote to assist in automating performance testing with httperf. It's important to note that it is designed as an interface to httperf and not a full feature automation suite.

Performance Testing with Httperf

"Httperf -- a tool for measuring web server performance. It provides a flexible facility for generating various HTTP workloads and for measuring server performance. The focus of httperf is not on implementing one particular benchmark but on providing a robust, high-performance tool that facilitates the construction of both micro- and macro-level benchmarks. The three distinguishing characteristics of httperf are its robustness, which includes the ability to generate and sustain server overload, support for the HTTP/1.1 and SSL protocols, and its extensibility to new workload generators and performance measurements."

Diskcached: Simple Disk Cacheing for Ruby

I created Diskcached as a simple cacheing layer for things like html fragments and database calls. I thought about using memcached, but as Ditty is running on a single server, it seemed overkill. Additionally, I looked at using rack-cache, but I felt it was a bit more complex then I was looking for. So Diskcached was born (although it was origiionally released as "simple_disk_cache" -- for about 12 hours).