Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gary Pendergast: WordPress Performance Tuning

Gary Pendergast: WordPress Performance Tuning

When you have a great idea for a site, you need WordPress to scale with you. From your first shared host, through to racks of high powered hardware, how do you get WordPress to keep up?

Learn about the tools and techniques you can use to keep your site running smoothly for it’s entire life, regardless of what the rest of the internet throws at it.

WP Australia

April 27, 2013
Tweet

More Decks by WP Australia

Other Decks in Technology

Transcript

  1. WordPress
    Performance Tuning
    A Narrative

    View Slide

  2. Gary Pendergast
    @GaryPendergast
    pento.net

    View Slide

  3. THINK AHEAD

    View Slide

  4. IN THE BEGINNING

    View Slide

  5. HOSTING

    View Slide

  6. View Slide

  7. WP SUPER CACHE
    google: wp super cache

    View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. UPDATE: It’s an
    uncached WordPress
    site, so, no surprise,
    it’s crapped out.

    View Slide

  13. INNODB

    View Slide

  14. ALTER TABLE ENGINE=InnoDB;
    wp_posts

    View Slide

  15. ALTER TABLE ENGINE=InnoDB;
    wp_postmeta

    View Slide

  16. ALTER TABLE ENGINE=InnoDB;
    wp_users

    View Slide

  17. ALTER TABLE ENGINE=InnoDB;
    ............

    View Slide

  18. GROWING PAINS

    View Slide

  19. View Slide

  20. View Slide

  21. View Slide

  22. innodb_buffer_pool_size

    View Slide

  23. query_cache_size = 0
    query_cache_type = 0

    View Slide

  24. LIES

    View Slide

  25. THINGS THAT ARE BAD
    QUERY CACHE

    View Slide

  26. THINGS THAT ARE GOOD
    INNODB BUFFER POOL

    View Slide

  27. OPCODE CACHE

    View Slide

  28. View Slide

  29. 001101011

    View Slide

  30. 001101011
    OPCODE
    CACHE

    View Slide

  31. 001101011
    OPCODE
    CACHE

    View Slide

  32. APC
    google: php apc

    View Slide

  33. CDN

    View Slide

  34. MULTI SERVER

    View Slide

  35. MEMCACHED

    View Slide

  36. OBJECT CACHE
    http://wordpress.org/extend/plugins/memcached/

    View Slide

  37. BATCACHE
    google: batcache

    View Slide

  38. THINK AHEAD

    View Slide

  39. THINK AHEAD
    ... but not too far ahead

    View Slide

  40. HYPERDB
    google: hyperdb

    View Slide

  41. $wpdb->add_database( array(
    'host' => 'master.server',
    'user' => 'wordpress',
    'password' => 'lol1234',
    'name' => 'wordpress'
    ) );

    View Slide

  42. REPLICATION

    View Slide

  43. MASTER
    SLAVE

    View Slide

  44. MASTER
    SLAVE SLAVE
    SLAVE

    View Slide

  45. $wpdb->add_database( array(
    'host' => 'slave1.server',
    'user' => 'wordpress',
    'password' => 'lol1234',
    'name' => 'wordpress',
    'write' => 0,
    'read' => 1,
    'dataset' => 'global',
    'timeout' => 0.2
    ) );

    View Slide

  46. MASTER
    SLAVE SLAVE
    SLAVE
    MASTER

    View Slide

  47. MASTER
    SLAVE SLAVE
    SLAVE
    MASTER

    View Slide

  48. REPLICATION
    google: mysql replication

    View Slide

  49. SHARDING

    View Slide

  50. USE THE TOOLS

    View Slide

  51. THINK AHEAD

    View Slide

  52. THINK AHEAD
    ... but not too far ahead

    View Slide

  53. automattic.com/work-with-us
    QUESTIONS?
    @GaryPendergast

    View Slide