• Save
Globo.com & Varnish
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Globo.com & Varnish

on

  • 6,898 views

 

Statistics

Views

Total Views
6,898
Views on SlideShare
6,845
Embed Views
53

Actions

Likes
16
Downloads
0
Comments
0

2 Embeds 53

http://www.slideshare.net 34
http://ccasado.com 19

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Globo.com & Varnish Presentation Transcript

  • 1. HTTP accelerator Cachos 2.0 Luis Henrique Okama Tollef Fog Heen Mario Carvalho
  • 2. What is the problem? GET / HTTP/1.1 Hang on, I need to look up a few hundred things in my database and then do a lot of editing controlled by a scripting language HEAD / HTTP/1.1 Hang on, I need to look up a few hundred things in my database and then do a lot of editing controlled by a scripting language, and then I will throw the result away.
  • 3. Why are CMS-es slow? Complex content generation process Single database prevents clustering Expensive software ditto This means: we need server side caching
  • 4. Why are the existing solutions not good enough? Squid, ancient design, forward proxy Apache, not what it's built for, not what it's good at Akamai (and similar), expensive, vendor lock-in
  • 5. What is Varnish? Dedicated HTTP accelerator Focus on server-side speedups Policy control High performance Varnish Configuration Language Shared memory log
  • 6. High performance 11 syscalls + 7 locks for a cache hit Work with the OS, not against it. Multi-CPU, multi-core 64 bit Use advanced OS features: Accept filters madvise(MADV_RANDOM) kqueue, epoll Don't copy data if you don't have to Use workspaces, not malloc/free Compiled configuration
  • 7. Policy control Override TTLs Add, remove or change headers Strip cookies Rewrite URLs Invalidate objects in the cache
  • 8. Varnish Configuration Language Simple domain specific language Compiled via C language to binary Transparently! Dynamically loaded Multiple configs loaded concurrently Instant switch from one VCL to another. Can be done from VCL
  • 9. VCL Example acl some_acl { "10.0.0.0/8" } if (client.ip ~ some_acl) { pass; } if (req.http.host ~ "foo.com$") { set req.http.host = regsub(req.http.host, "foo.com", "bar.org"); } if (obj.valid) { set obj.ttl = 10m; deliver; }
  • 10. Shared memory logfile Fast Custom log tailers varnishtop varnishlog varnishhist varnishncsa varnishstat
  • 11. Globo.com cache infrastructure
  • 12. Comparative scalability setup time cost open source throughput physical space
  • 13. Comparative scalability setup time cost open source throughput physical space
  • 14. Comparative scalability setup time cost open source throughput physical space
  • 15. Comparative scalability setup time cost open source throughput physical space
  • 16. Comparative scalability setup time cost open source throughput physical space
  • 17. Comparative scalability setup time cost open source throughput physical space
  • 18. Comparative scalability setup time cost open source throughput physical space
  • 19. Some data
  • 20. Conclusion software customization work set
  • 21. Real life performance
  • 22. Questions
  • 23. Contacts Luis H. Okama okama@corp.globo.com (www.globo.com) Mario Carvalho mariocar@corp.globo.com (www.globo.com) Tollef Fog Heen tfheen@redpill-linpro.com (www.varnish-cache.com) @ Stand Globo.com