Magento – Performance Analysis
In our office we are currently evaluating the pros and cons of Magento. Besides all the great features it offers it has a huge con – the performance. We read a lot about it but couldn’t find any reliable statements about how fast or slow it really it is. So I put a plain Magento install on my testing machine and gave it a shot..
HTTP/1.1 200 1.14 secs: 9701 bytes ==> /
Lifting the server siege… done.
Transactions: 1527 hits
Availability: 100.00 %
Elapsed time: 89.69 secs
Data transferred: 14.13 MB
Response time: 1.46 secs
Transaction rate: 17.03 trans/sec
Throughput: 0.16 MB/sec
Concurrency: 24.78
Successful transactions: 1527
Failed transactions: 0
Longest transaction: 4.24
Shortest transaction: 0.37
These results are for a totally empty Magento install. No products, no categories, default theme – landing page. 17 requests/sec aren’t very satisfying considering the DB is empty. So I took an existing XT:Commerce with ~100 categories and ~5500 products and imported everything in Magento.
The start page now displayed the main categories but besides that nothing. I didn’t put any products or paragraphs on the page.
Transactions: 1728 hits
Availability: 100.00 %
Elapsed time: 89.73 secs
Data transferred: 46.52 MB
Response time: 1.29 secs
Transaction rate: 19.26 trans/sec
Concurrency: 24.84
Successful transactions: 1728
Failed transactions: 0
Longest transaction: 5.37
Shortest transaction: 0.09
If you read the numbers carefully your probably noticed a slight increase in the req/sec. I’m not sure what happened here – might be tolerance, but I did this test a couple of times and the result was always 19req/sec. Perhaps Magento created some more caches in the background that I forgot to set before – will have to investigate it a bit more later.
However, in real life our customers are supposed to click more than just the start page when they visit our shop. They are supposed to browse categories and sort the products by name, price, size and color. So I grabbed the next sitemap crawler, generated a list of 250urls and fed Siege with the new task.
You better buckle up, this is not pretty!
Transactions: 574 hits
Availability: 100.00 %
Elapsed time: 90.20 secs
Data transferred: 27.55 MB
Response time: 3.83 secs
Transaction rate: 6.36 trans/sec
Throughput: 0.31 MB/sec
Concurrency: 24.36
Successful transactions: 574
Failed transactions: 0
Longest transaction: 15.61
Shortest transaction: 0.33
That’s what I call slow! Imagine you are a shop owner and you are doing it for living. The customers are placing their orders and then – out of the dark – the Google Bots start indexing your site, a customer sends a link to a few friends, makesa post on FaceBook about your fancy new products and then – the server goes down, due to the lack of performance. During this test the server load reached 14 and the site responded veeeery slow – up to 15secs per click. Most customers would leave your site right away.
In the next part, I’m gonna try to see if and how Magento can be tweaked to survive a rush on your site.
Be prepared and check back soon!