mage titans usa 2016 - miguel balparda - magento 2: premium performance with php 7 and varnish

Post on 08-Jan-2017

52 Views

Category:

Art & Photos

8 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Magento 2: Premium Performance with PHP 7 and Varnish

•Full time traveler •Magento Master 2016•Meet Magento speaker•Magento Certified Solution Specialist•BBQ Certified Solution Specialist

Miguel Balparda

@mbalparda

Test overview

1. Magento 2 using PHP 5.6 vs Magento 2 using PHP 5.6 and Varnish

2. Magento 2 using PHP 7 vs Magento 2 using PHP 7 and Varnish

3. Magento 2 using PHP 5.6 vs Magento 2 using PHP 7

Hardware

Software● Apache 2.2● Redis 2.8.4● PHP-FPM 5.6.15 (latest versions available at testing time)● PHP-FPM 7.0.2 (latest versions available at testing time)● Percona 5.6● Varnish 4.0.1● Centos 6.7 x86_64● Siege 3.0.5● Magento 2.0.2 with sample data and sample theme

Magento store specs● Stores: 1● SKU count: 2,046 ● Categories: 8● Subcategories: 1,173

Varnish

Magento env.php (redis)

'cache' =>array( 'frontend' => array( 'default' => array( 'backend' => 'Cm_Cache_Backend_Redis', 'backend_options' => array( 'server' => '127.0.0.1', 'port' => '6379' ), ),

Magento env.php (redis)

'page_cache' => array( 'backend' => 'Cm_Cache_Backend_Redis', 'backend_options' => array( 'server' => '127.0.0.1', 'port' => '6379', 'database' => '1', 'compress_data' => '0' ) ) ))

Magento env.php (memcache)

(PHP memcache extension)

'session' => array ( 'save' => 'memcache', 'save_path' => 'tcp://<memcache ip or host>:<memcache port>'),

(PHP memcached extension)

'session' => array ( 'save' => 'memcached’, 'save_path' => '<memcache ip or host>:<memcache port>'),

Magento CLI

We enabled production mode by running:

magento deploy:mode:set production

Siege automation#!/bin/shecho "Creating sitemap:"curl $4 | sed 's/\<url\>/\<url\>\n/g' | grep 0.5 | sed 's/.*loc>\(.*\)<\/loc.*/\1/g' > urls.txtcurl $4 | sed 's/\<url\>/\<url\>\n/g' | grep 1.0 | sed 's/.*loc>\(.*\)<\/loc.*/\1/g' >>urls.txtecho "Warming cache:"Siege -i -c50 -t60s -f urls.txt

echo "Waiting 1 minute for the first test."sleep 1mecho "Starting tests:"for i in `seq 1 $5`;do

echo "Running test # $i / $5:"Siege -i -c$1 -t$2s -f urls.txtecho "Waiting 1 minute for the next test."sleep 1m

doneecho "Removing urls.txt:"rm urls.txt

Siege output ** Siege 2.60

** Preparing 100 concurrent users for battle.The server is now under Siege...doneTransactions: 339 hitsAvaility: 93.39 %Elapsed time: 67.47 secsData transferred: 4273708 bytesResponse time: 8.25 secsTransaction rate: 5.02 trans/secThroughput: 63342.34 bytes/secConcurrency: 41.47Successful transactions: 337Failed transactions: 26Longest transaction: 17.77 secsShortest transaction: 0.37 secs

PHP 5.6 transaction rate

PHP 5.6 transactions

PHP 5.6 response time

PHP 5.6 Varnish transaction rate

PHP 5.6 vs PHP 5.6 Varnish transaction rate

PHP 5.6 vs PHP 5.6 Varnish transactions

PHP 5.6 vs PHP 5.6 Varnish response time

PHP 7 transaction rate

PHP 7 vs PHP 7 Varnish transaction rate

PHP 7 vs PHP 7 Varnish transactions

PHP 7 vs PHP 7 Varnish response time

PHP 5.6 vs PHP 7 transaction rate

PHP 5.6 vs PHP 7 transactions

PHP 5.6 vs PHP 7 response time

Conclusion

Thank you for coming!

top related