Methods and Best Practices for High Performance eCommerce
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Methods and Best Practices for High Performance eCommerce

  • 15,354 views
Uploaded on

Magento HQ Developers Meet up, Los Angeles, September 16

Magento HQ Developers Meet up, Los Angeles, September 16

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
15,354
On Slideshare
9,670
From Embeds
5,684
Number of Embeds
21

Actions

Shares
Downloads
223
Comments
0
Likes
11

Embeds 5,684

http://127.0.0.1 2,842
http://www.betateste.com.br 890
http://blog.pod1.com 543
http://www.gxjansen.com 405
http://localhost 202
http://romych.com.ua 165
http://www.jayonline.co.uk 144
http://www.pod1.com 129
http://betateste.com.br 119
http://192.168.0.105 101
http://www2.hsm.com.br 62
http://news.magentips.com 36
http://www.mohanadghashim.com 22
http://impressiondp.posterous.com 10
http://192.168.174.39 4
http://translate.googleusercontent.com 4
http://www.impressiondp.co.uk 2
http://debian.clb 1
http://www.slideshare.net 1
http://romych.loc 1
http://www.borngroup.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Magento HQ Developers Meet up
    Methods and Best Practices for High Performance eCommerce.
    By Dmitriy Soroka
    System Architect at Magento, Inc
    20-Sep-10|
    1|
  • 2. Performance Improvement Techniques
    Environment
    Web Server Configuration
    Data Base Configuration
    Accelerating PHP
    Additional HTTP Requests
    Application
    Caching
    Session Handling
    More options
    Scaling
    Backend Server
    Multiple Frontend Servers
    Multiple Databases
    3rd party integrations
    Integration with Solr
  • 3. Benchmarks Methodology
    Siege with different concurrencies
    10, 20, 50, 100
    Database Size
    Sample data, 10K products, 80K products
    URLs
    CMS Page (home page)
    URLs List
    Checkout
    Results
    Requests per second
    Orders per hour
  • 4. Environment optimization
    Apache, MySQL, PHP
  • 5. Apache Configuration
    Apache modules – use just necessary modules
    KeepAlive directive
    mod_deflate - compress content before sending it to the browser
    Eliminating directory structure scans for the .htaccess
  • 6. MySQL Configuration
    innodb_buffer_pool_size
    Combined web and db server, 6 GB RAM – 2-3 GB
    Dedicated database server, 6 GB RAM – 5 GB
    Dedicated database server, 12 GB RAM – 10 GB
    innodb_thread_concurrency
    2 * [numberofCPUs] + 2
    table_cache is the number of tables that can be simultaneously opened by MySQL
    query_cache_size (64 Mb)
    query_cache_limit (2 Mb)
  • 7. Optimization Results
  • 8. Accelerating PHP
    File system structure optimization
    APC
    eAccelerator
    Zend Optimize
    Xcache
  • 9. Magento Compiler
  • 10. PHP Accelerators
  • 11. Additional HTTP Requests
    CSS
    Java Script
    Images
  • 12. Application optimization
    Cache, Sessions
  • 13. Cache Types
  • 14. Cache Enables vs. Cache disabled
  • 15. Cache Storages
    Memory Based
    File System Based
  • Two Levels Backend
    Two Levels Backend
    Slow level
    Fast level
  • 24. Cache Configuration
    <config>
    <global>
    <cache>
    <!-- apc / memcached / xcache / empty=file -->
    <backend></backend>
    <prefix|id_prefix></prefix|id_prefix>
    <backend_options>
    <option_code1>option_value1</option_code1>
    </backend_options>
    <frontend_options>
    <option_code1>option_value1</option_code1>
    </frontend_options>
    <memcached>
    <servers>....</servers>
    <memcached>
    </cache>
    </global>
    </config>
  • 25. Slow Backend
    <config>
    <global>
    <cache>
    <slow_backend>database</slow_backend>
    <slow_backend_options>
    <option_code1>option_value1</option_code1>
    </slow_backend_options>
    </cache>
    </global>
    </config>
  • 26. Storages Benchmark
  • 27. Full Page Cache (CMS page)
  • 28. Full Page Cache (urls list)
  • 29. Session Storage
    Files Memcached Data Base
  • 30. More…
    Flat Catalog
    Sales Archive
    Backend processes (cron, indexes)
    Theme complexity
  • 31. scaling
    Hardware, Web Nodes, Data Base
  • 32. Hardware
  • 33. Separate Backend Server
    Data Base
    Handle admin users
    Process backend activity (cron)
    Pre generate Full Page Cache
    Handle media queries
  • 34. Multiple Web Nodes (browsing)
  • 35. Multiple Web Nodes (checkout)
  • 36. Data Base
    config/global/resources
    <default_setup>
    <connection>
    <host><![CDATA[master]]></host>
    <username><![CDATA[writeuser]]></username>
    <password><![CDATA[writeuserpwd]]></password>
    <dbname><![CDATA[magento]]></dbname>
    <active>1</active>
    </connection>
    </default_setup>
    <default_read>
    <connection>
    <use></use>
    <host><![CDATA[slave]]></host>
    <username><![CDATA[readuser]]></username>
    <password><![CDATA[readuserpwd]]></password>
    <dbname><![CDATA[magento]]></dbname>
    <model>mysql4</model>
    <initStatements>SET NAMES utf8</initStatements>
    <type>pdo_mysql</type>
    <active>1</active>
    </connection>
    </default_read>
  • 37. 3rd party integrations
    Solr
  • 38. Using solr
    Spell checking
    Search suggestions
    Morphology
    Category navigation
    Facet navigation
  • 39. Benchmark Results
  • 40. Magento HQ Developers Meet up
    Thank You
    Email: dmitriy.soroka@varien.com
  • 41. Q&A