Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish
-
Upload
yireo -
Category
Technology
-
view
67 -
download
2
Transcript of Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish
Miguel Balparda
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
Varnish
Varnish + Magento
Magento + Varnish
Replace your default VCL and restart the service
service varnish restart
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 vs PHP 5.6 Varnish transaction rate
8x2.3x2x
PHP 5.6 vs PHP 5.6 Varnish transactions
9x5x2x
PHP 5.6 vs PHP 5.6 Varnish response time
377x90x50x
PHP 7 transaction rate
PHP 7 vs PHP 7 Varnish transaction rate
4.7x1.6x1-7x
PHP 7 vs PHP 7 Varnish transactions
5x1.5x1.6x
PHP 7 vs PHP 7 Varnish response time
187x31x51x
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!