Load Testing CKAN

What we did

  1. Put db in some standard state and start server:

    paster db clean && paster db create && paster create-test-data search
    # alternatively we could use a dump of the live db
    # psql -h localhost --user tester ckantest < ....
    
    # may want to create a production config
    paster serve development.ini
  2. Do tests:

    # 5 results for this query
    ab -n 100 -c 10 -e myresults.csv "http://localhost:5000/api/search/package?q=government&all_fields=1"
    # remote test host
    # ab -n 100 -c 10 -e myresults.csv "http://test.ckan.net/api/search/package?q=geo&all_fields=1"
  3. Examine results, fix, and repeat!

Research

Testing Tools

Apache Benchmarking Tool

funkload

High Performance Servers and Caching Utilities

memcached

Tornado