0
Scaling Quizlet                        Andrew Sutherland                             FounderFriday, April 20, 12
Quizlet.com                       We provide educational tools for millions of kids.Friday, April 20, 12
Traffic                       • 70M pageviews/mo                       • 7.5M uniques/mo                       • Quantcast ...
Traffic Pattern                  6x growth in 4 weeks, every yearFriday, April 20, 12
Data                 • 160 GB in MySQL                 • 1.1B rows in `answers` table                 • One big 48GB maste...
Architecture                       • 2 Load Balancers                       • 3 Web Servers                       • 2 Data...
Throughput           Page requests:           - 750 rps peak           - 300 rps avg           Memcached:         MySQL:  ...
Biggest single win                            (2010)          Removing joins.          Putting all ID-based lookups in    ...
Watching syscalls with                              DTrace               dtrace -n syscall::open:entry { printf("%s       ...
Need better visibility                            into apps                                        Site got               ...
AVERAGES                         SUCKFriday, April 20, 12
Enter New Relic                         (live demo)Friday, April 20, 12
New Relic isn’t enough.Friday, April 20, 12
Check out our super-crappy,                 super-awesome Inline I/O viewerFriday, April 20, 12
And our super-crappy,                 super-awesome App log viewerFriday, April 20, 12
Our log viewer                       Check out our super-crappy,                       super-awesome Log ViewerFriday, Apr...
YOUR LOGS                    ARE                RELATIONALFriday, April 20, 12
Log lookups by                   • User ID                   • IP address                   • Type                   • Fre...
Scalable diagnosis of                         user issues with                            feedback                        ...
The Future                       We built a game in Node.                       It rocks.Friday, April 20, 12
Future                       We built a game in Node.                       It rocks.Friday, April 20, 12
Future                       We built a game in Node.                       It rocks.Friday, April 20, 12
New Scaling Story       Single user might have 5 messages       with the server in 1 second.       Connection lasts 30 min...
Scaling node             We’re exploring this now.             And need help.Friday, April 20, 12
Random TipsFriday, April 20, 12
Show Me What’s Wrong                         Second coolest website ever.                       http://showmewhatswrong.co...
Poor man’s SMS alerts                       Setup GMail filter for SMS                       1. Add filter for name+sms@ho...
Ambient Traffic                               Awareness                       Get the New Relic Menu Bar                   ...
Use Vogue!                       Never refresh for CSS again!                                 Vogue                       ...
Thanks!                       Follow:                       @asuth                       @quizletFriday, April 20, 12
Upcoming SlideShare
Loading in...5
×

Scaling Quizlet

646

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
646
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Scaling Quizlet"

  1. 1. Scaling Quizlet Andrew Sutherland FounderFriday, April 20, 12
  2. 2. Quizlet.com We provide educational tools for millions of kids.Friday, April 20, 12
  3. 3. Traffic • 70M pageviews/mo • 7.5M uniques/mo • Quantcast US Rank: #385 • 99.97% uptime this yearFriday, April 20, 12
  4. 4. Traffic Pattern 6x growth in 4 weeks, every yearFriday, April 20, 12
  5. 5. Data • 160 GB in MySQL • 1.1B rows in `answers` table • One big 48GB master does it all (are we crazy?)Friday, April 20, 12
  6. 6. Architecture • 2 Load Balancers • 3 Web Servers • 2 Database machines • ~15 machines doing servicesFriday, April 20, 12
  7. 7. Throughput Page requests: - 750 rps peak - 300 rps avg Memcached: MySQL: - 2,500 qps peak - 1,100 qps peak - 1,000 qps avg - 465 qps avgFriday, April 20, 12
  8. 8. Biggest single win (2010) Removing joins. Putting all ID-based lookups in memcached. 3x’d our performance overnight, prevented complicated architectureFriday, April 20, 12
  9. 9. Watching syscalls with DTrace dtrace -n syscall::open:entry { printf("%s %s",execname,copyinstr(arg0)); } Found PHP opening files because of require_once(). Switched to require().Friday, April 20, 12
  10. 10. Need better visibility into apps Site got 2x faster hereFriday, April 20, 12
  11. 11. AVERAGES SUCKFriday, April 20, 12
  12. 12. Enter New Relic (live demo)Friday, April 20, 12
  13. 13. New Relic isn’t enough.Friday, April 20, 12
  14. 14. Check out our super-crappy, super-awesome Inline I/O viewerFriday, April 20, 12
  15. 15. And our super-crappy, super-awesome App log viewerFriday, April 20, 12
  16. 16. Our log viewer Check out our super-crappy, super-awesome Log ViewerFriday, April 20, 12
  17. 17. YOUR LOGS ARE RELATIONALFriday, April 20, 12
  18. 18. Log lookups by • User ID • IP address • Type • Frequency • Type+Frequency • Response timesFriday, April 20, 12
  19. 19. Scalable diagnosis of user issues with feedback (demo)Friday, April 20, 12
  20. 20. The Future We built a game in Node. It rocks.Friday, April 20, 12
  21. 21. Future We built a game in Node. It rocks.Friday, April 20, 12
  22. 22. Future We built a game in Node. It rocks.Friday, April 20, 12
  23. 23. New Scaling Story Single user might have 5 messages with the server in 1 second. Connection lasts 30 minutes, not 100ms.Friday, April 20, 12
  24. 24. Scaling node We’re exploring this now. And need help.Friday, April 20, 12
  25. 25. Random TipsFriday, April 20, 12
  26. 26. Show Me What’s Wrong Second coolest website ever. http://showmewhatswrong.com/Friday, April 20, 12
  27. 27. Poor man’s SMS alerts Setup GMail filter for SMS 1. Add filter for name+sms@hotstartup.com 2. Forward to 4155551234@vtext.com (VZW) 3. Your app can now text you anytime, for free.Friday, April 20, 12
  28. 28. Ambient Traffic Awareness Get the New Relic Menu Bar Always know about how much traffic you have. (Available in Mac App Store)Friday, April 20, 12
  29. 29. Use Vogue! Never refresh for CSS again! Vogue github.com/quizlet/vogueFriday, April 20, 12
  30. 30. Thanks! Follow: @asuth @quizletFriday, April 20, 12
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×