Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish

236 views

Published on

A presentation by Miguel Balparda on how to get premium performance with Magento 2 using PHP 7 and Varnish

Published in: Technology
  • Be the first to comment

Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish

  1. 1. Miguel Balparda Magento 2: Premium Performance with PHP 7 and Varnish
  2. 2. •Full time traveler •Magento Master 2016 •Meet Magento speaker •Magento Certified Solution Specialist •BBQ Certified Solution Specialist Miguel Balparda @mbalparda
  3. 3. 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
  4. 4. Hardware
  5. 5. 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
  6. 6. Varnish
  7. 7. Varnish + Magento
  8. 8. Magento + Varnish Replace your default VCL and restart the service service varnish restart
  9. 9. 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' ), ),
  10. 10. 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' ) ) ) )
  11. 11. 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>' ),
  12. 12. Magento CLI We enabled production mode by running: magento deploy:mode:set production
  13. 13. Siege automation #!/bin/sh echo "Creating sitemap:" curl $4 | sed 's/<url>/<url>n/g' | grep 0.5 | sed 's/.*loc>(.*)</loc.*/1/g' > urls.txt curl $4 | sed 's/<url>/<url>n/g' | grep 1.0 | sed 's/.*loc>(.*)</loc.*/1/g' >>urls.txt echo "Warming cache:" siege -i -c50 -t60s -f urls.txt echo "Waiting 1 minute for the first test." sleep 1m echo "Starting tests:" for i in `seq 1 $5`; do echo "Running test # $i / $5:" Siege -i -c$1 -t$2s -f urls.txt echo "Waiting 1 minute for the next test." sleep 1m done echo "Removing urls.txt:" rm urls.txt
  14. 14. Siege output ** Siege 2.60 ** Preparing 100 concurrent users for battle. The server is now under Siege...done Transactions: 339 hits Availity: 93.39 % Elapsed time: 67.47 secs Data transferred: 4273708 bytes Response time: 8.25 secs Transaction rate: 5.02 trans/sec Throughput: 63342.34 bytes/sec Concurrency: 41.47 Successful transactions: 337 Failed transactions: 26 Longest transaction: 17.77 secs Shortest transaction: 0.37 secs
  15. 15. PHP 5.6 transaction rate
  16. 16. PHP 5.6 transactions
  17. 17. PHP 5.6 response time
  18. 18. PHP 5.6 vs PHP 5.6 Varnish transaction rate 8x2.3x2x
  19. 19. PHP 5.6 vs PHP 5.6 Varnish transactions 9x5x2x
  20. 20. PHP 5.6 vs PHP 5.6 Varnish response time 377x90x50x
  21. 21. PHP 7 transaction rate
  22. 22. PHP 7 vs PHP 7 Varnish transaction rate 4.7x1.6x1-7x
  23. 23. PHP 7 vs PHP 7 Varnish transactions 5x1.5x1.6x
  24. 24. PHP 7 vs PHP 7 Varnish response time 187x31x51x
  25. 25. PHP 5.6 vs PHP 7 transaction rate
  26. 26. PHP 5.6 vs PHP 7 transactions
  27. 27. PHP 5.6 vs PHP 7 response time
  28. 28. Conclusion
  29. 29. Thank you for coming!

×