There are no reviews yet. Be the first to send feedback to the community and the maintainers!
For updated version, see: https://github.com/jmervine/autoperf -------------------------------------------------------------- Autoperf is a ruby driver for httperf, designed to help you automate load and performance testing of any web application - for a single end point, or through log replay. More: http://www.igvita.com/2008/09/30/load-testing-with-log-replay To get started, first download & install httperf: http://www.hpl.hp.com/research/linux/httperf/ Next, either run a simple test straight from the command line (man httperf), or create an execution plan for autoperf. If you want to replay an access log from your production environment, follow these steps: # grab last 10000 lines from nginx log, and extract a certain pattern (if needed) tail -n 10000 nginx.log | grep "__pattern__" > requests # extract the request path (ex. /homepage) from the log file awk '{print $7}' requests > requests_path # replace newlines with null terminators (httperf format) tr "\n" "\0" < requests_path > replay_log Next, configure your execution plan (see sample.conf), and run autoperf: ruby autoperf.rb -c sample.conf Sample output: +-----------------------------------------------------------------------------+ | rate | conn/s | req/s | replies/s avg | errors | 5xx status | net io (KB/s) | +-----------------------------------------------------------------------------+ | 100 | 99.9 | 99.9 | 99.7 | 0 | 0 | 45.4 | | 120 | 119.7 | 119.7 | 120.0 | 0 | 0 | 54.4 | | 140 | 139.3 | 139.3 | 138.0 | 0 | 0 | 63.6 | |> 160 | 151.9 | 151.9 | 147.0 | 0 | 0 | 69.3 | | 180 | 132.2 | 129.8 | 137.4 | 27 | 0 | 59.6 | | 200 | 119.8 | 117.6 | 139.9 | 31 | 14 | 53.9 | +-----------------------------------------------------------------------------+ If your server uses caching, making it pointless to run the same requests over and over, you can use different requests for each run. # Create 10 1000-line files (xa, xb, xc etc) split -a 1 requests_path # Convert to null-terminated strings for x in x?; do tr "\n" "\0" < $x > $x.nul; done # run as before, but use the `wlog` line instead of `httperf_wlog` in the conf file ruby autoperf.rb -c sample.conf
videospeed
HTML5 video speed controller (for Google Chrome)ga-beacon
Google Analytics collector-as-a-service (using GA measurement protocol).gharchive.org
GH Archive is a project to record the public GitHub timeline, archive it, and make it easily accessible for further analysis.em-websocket
EventMachine based WebSocket serverdecisiontree
ID3-based implementation of the ML Decision Tree algorithmem-http-request
Asynchronous HTTP Client (EventMachine + Ruby)em-synchrony
Fiber aware EventMachine clients and convenience classeshttp-2
Pure Ruby implementation of HTTP/2 protocolbugspots
Implementation of simple bug prediction hotspot heuristicagent
Agent is an attempt at modelling Go-like concurrency, in Rubyvimgolf
Real Vim ninjas count every keystroke - do you?em-proxy
EventMachine Proxy DSL for writing high-performance transparent / intercepting proxies in Rubynode-spdyproxy
SPDY forwarding proxy - fast and securebloomfilter-rb
BloomFilter(s) in Ruby: Native counting filter + Redis counting/non-counting filtersasync-rails
async Rails 3 stack demoistlsfastyet.com
Is TLS fast yet? Yes, yes it is.hackernews-button
Embeddable Hacker News button + vote counter for your sitehttp-client-hints
spdy
SPDY is a protocol designed to reduce latency of web pageshpbn.co
High Performance Browser Networking (O'Reilly)webp-detect
WebP with Accept negotiationzeroconf-router
Zero-config reverse proxies: let's get there!PubSubHubbub
Asynchronous PubSubHubbub Ruby Clientheroku-buildpack-dart
Heroku buildpack for Dartrack-speedtracer
SpeedTracer middleware for server side debuggingtextquery
Evaluate any text against a collection of match rulestokyo-recipes
Lean & mean Tokyo Cabinet recipes (with Lua)slowgrowl
Surface slow code paths in your Rails 3 app via Growlmneme
Mneme is an HTTP web-service for recording and identifying previously seen records - aka, duplicate detection.RRRDTool
Round robin database pattern via Redis sorted setspregel
Single-node implementation of Google's Pregel framework for graph processing.gmetric
Pure Ruby interface for generating Ganglia gmetric packetsrack-aggregate
Rack response-time statistics aggregator middlewareem-jack
An Evented Beanstalk Clientrb-pagerank
Code from RailsConf '09 pres: Building Mini Google in Rubyclosure-sprockets
Sprockets processor for Google's Closure toolsnetinfo-monitor
Displays network quality as reported by Network Information API.shopify-core-web-vitals
This embedded app provides a report on how real-world Google Chrome users experience the Shopify-powered storefront, as captured by the Chrome UX Report, and enables the site owner to benchmark their site against a custom list of competitors.libsnappy
Snappy, a fast compressor/decompressor (courtesy of Google)hydra5
Load-balanced (multi-headed) SOCKS5 proxyzdevice
ZDevice is a Ruby DSL for assembling ZeroMQ routing devices, with support for the ZDCF configuration syntaxruby2lolz
Ruby to Lolcode translator, kthnxbai.bmr-wordcount
Browser Map-Reduce: distributed word count exampleresource-hints
Moved to...gitter
XML history generator for CodeSwarmem-socksify
Transparent proxy support for any EventMachine protocolem-handlersocket
EventMachine HandlerSocket MySQL plugin for direct read/write of InnoDB tablescanicrawl
Hosted robots.txt permissions verifierudacity-webperf
omnipipe
web pipes for your browser's omnibar!issue-tracker
W3C webperf issue trackercontextual
runtime contextual HTML autoescaperpresentations
Slides, notes, code examples from some of the bigger conferences & talks.libgeohash
Ruby FFI wrapper for libgeohashperformance-observer
ImageQuote
Convert text quotes to imagesresourcehints.info
igrigorik
Love Open Source and this site? Check out how you can help us