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.

Performance management

369 views

Published on

Presentation given to WordCamp Buffalo 2016

Published in: Software
  • Be the first to comment

  • Be the first to like this

Performance management

  1. 1. PERFORMANCE MANAGEMENT Alan Lok
  2. 2. WHY SHOULD I CARE? • Save money? • Look better? • Keep clients!
  3. 3. COMPUTER PERFORMANCE Computer performance is characterized by the amount of work accomplished by a computer system or computer network compared to the time and resources used. Depending on the context, high computer performance may involve one or more of the following: • Short response time for a given piece of work • High throughput (rate of processing work) • Low utilization of computing resource(s) • High availability of the computing system or application • Fast (or highly compact) data compression and decompression • High bandwidth • Short data transmission time As defined by Wikipedia https://en.wikipedia.org/wiki/Computer_performance
  4. 4. HOW DOES ONE MANAGE PERFORMANCE Monitor
 after release Monitor
 before release Monitor
 before your client calls you
  5. 5. MONITOR BEFORE RELEASE • PHP profiling (for plugin and theme developers) • Database analysis (for plugin developers) • Load testing
  6. 6. PHP PROFILING • Analyze your application with a PHP profiler such as BlackFire.io, New Relic, or xdebug/cachegrind • Look for high number of calls, especially apply_filters, mysql calls, and wp_cache_get
  7. 7. PAGE PROFILING • Page weight • CSS weight • JS execution
  8. 8. DATA ACCESS • Use a tool such as New Relic to look through number of calls to database • Optimize calls when rolling out your own table structures and ensure there are proper indexes • Reduce number of plugins, widgets and shortcodes can cut down on database access
  9. 9. LOADTESTING • wrk (https://github.com/wg/wrk) • Siege (https://www.joedog.org/siege-home/) • http_load (http://acme.com/software/http_load/) The simple ones
  10. 10. BUT WAIT,WHAT ABOUT WEBDRIVER… • Great tool for real world and/or transactional testing • Need lots of computing power • Harder to script
  11. 11. IT’S LIVE! Monitor
 your server Monitor
 your users Monitor
 your app
  12. 12. BEATYOUR CLIENTTO RESOLUTION • Set up application-based alerts via New Relic • Set up server monitoring via DataDog or New Relic • Set up 3rd party monitoring (New Relic, Pingdom)
  13. 13. PRODUCTION METRICS • Response times / latency
 Specifically for dynamic content serving • Error rate
 For both server and client • Process availability
 Is my Apache, Nginx, PHP-FPM, MySQL or memcached up? • Number of connections
 Every machine has its limits, play within it • Memory utilization
 You do not want to use swap • Database QPS that actually matter
  14. 14. BEST WAYTO AVOID DOWNTIME IS… add redundancy add redundancy test your redundancy
  15. 15. SOME CHEAP WAYSTO SPEED UPYOUR WORDPRESS SITE • Google mod_pagespeed • Varnish • W3TC or WP SuperCache • fewer plugins Caveat: not a one size fits all solution, so test and measure
  16. 16. Prevention is the best kind of performance management me
  17. 17. @alan_lok Thanks!

×