Stop Tilting at Windmills: Spotting Bottlenecks

Presented by Yann Malet & Brandon Konkle

Get numbers before you start trying to debug. You can’t fix a problem you don’t have.

Performance Testing

  • Time to load a page
  • Number of queries per page
  • Time taken by the queries
  • Number of cache hits/misses
  • Time spent waiting on 3rd parties

Load Testing

  • Taking your entire app infrastructure into account
  • Understanding how your performance changes under stress and over time
  • Creating realisting test plans that imitate real life traffic

Database

  • Handling numerous queries in parallel
  • Types of queries running at the same time

Caching

  • Cache key expiration
  • Cache size and key eviction

Note

JMeter

Command-line tools

  • htop
  • dstat
  • pg_top, mtop
  • memcache-top