Magento Siege Testing

Written by Peter Davies on .

Siege is very good at running through a file of URL's and visiting each one as it goes. There are many options you can add to the siege tool to get it to perform benchmarks (-b) and also randomly choose a URL like a real user (-i). Here is a quick run down:

curl http://magentostore/sitemap.xml | sed 's/\<url\>/\<url\>\n/g' | grep 0.5 | sed 's/.*loc>\(.*\)<\/loc.*/\1/g' > urls.txt
curl http://magentostore/sitemap.xml | sed 's/\<url\>/\<url\>\n/g' | grep 1.0 | sed 's/.*loc>\(.*\)<\/loc.*/\1/g' >>urls.txt

siege -c50 -t120s -f urls.txt

The above command will run for 120 seconds and simulate 50 concurrent connections to the URL's listed in the text file. If you need the tool to simply run through each URL for cache warming you might want to try just 1 user such as:

siege -c1 -v -f urls.txt

Additional information was gathered from Ashley Schroder's page here:

http://www.aschroder.com/2010/12/laying-siege-to-magento-performance-testing-your-magento-webstores/

I've been working a lot on the Nexcess Turpentine Magento extension (here) which for some of our Magento stores works very well as it provides ESI support for varnish. It has a useful cache warming script which I plan on investigating during March 2013 - more details to come.