What have we learned?

Magento
Performance
Toolkit
William Harvey
Principal Product Manager
Magento
Performance Toolkit
Magento Performance Testing – Control Variables
Load Generator
Merchant Traffic Profile
Reference Store
Magento Platform
Environment
Reference System Architecture
Test Protocol
Load Generator
• Hardware
• Developer’s Performance System
• Software
• Apache jMeter 2.11 r1554548
• JMeterPlugins-Standard, JMeterPlugins-Extra
Merchant Traffic Profile / Reference Store
Profile
Websites
Categories
Simple Products
Configurable Products
Small
1
30
800
50
Medium
1
300
16,000
1,000
Large
3
1,000
40,000
25,000
XL
5
3,000
800,000
50,000
Magento Platform
• Magento Version
• EE 1.13.1.0
• Patches Applied
• PHP 5.4 Compatibility Patch
• Scalability Patch (SUPEE-3818)
Environment (Hardware) – Desktop Example
• Developer’s Performance System
• CPU = 3.5 GHz, Quad-Core i7 (i4770k)
• RAM = 32 GB
• HDD = Sata III, Intel 530 Series 180GB SSD
Environment (Hardware) – Virtual Server Example
• Cloud Application Server
• CPU = 2x vCPU, 2.3 GHz (Xeon E5-2530)
• RAM = 7 GB
• Cloud Database Server
• CPU = 4x vCPU, 2.3GHz (Xeon E5-2530)
• RAM = 7 GB
Reference System Architecture – Examples
Environment (Software)
• MySQL 5.4.38
• PHP 5.4.30
• Redis 2.6.17
Environment (Software) – Example variables
•
•
•
•
noatime, nodiratime
no write barriers (barriers=0)
swappiness = 10
max file descriptors = 65535
Test Protocol – Example
1. Prepare environment
a. Provision servers and load system software
b. Install Magento and apply patches
2. Execute generate.php to populate the store
3. Run performance.jmx once to prime the cache
4. Run performance.jmx again and report results
Lessons Learned
What have we learned?
• Magento runs better on PHP 5.4
http://www.magentocommerce.com/knowledge-base/entry/php54-patch
What have we learned?
• Magento + PHP 5.3
Can see a major performance improvement with…
• Magento + Nginx + PHP-FPM
Is comparable to…
• Magento + PHP 5.4 + Opcache
What have we learned?
• Use redis as a cache backend for Magento
• Native support in CE 1.8, EE 1.12 & later
http://info.magento.com/rs/magentocommerce/images/MagentoECGUsingRedisasaCacheBackendinMagento.pdf
What have we learned?
• Importing is getting slower…
• Shopper experience is getting faster…
What have we learned?
• Magento 1.14 is faster than 1.13...
• Magento 1.14 is slower than 1.13…
What have we learned?
• Some extensions break caching…
• Magento EE FPC
• Nginx
• Varnish
What is coming?
What is coming?
• Performance Test Toolkit (1.12, 1.13, 1.14, 2.x)
• PHP Scripts (generate.php, indexer.php)
• jMeter Test Scripts (performance.jmx)
• Whitepaper: Magento Performance Test Guidelines
Q&A
Magento
Performance
Toolkit