HTTP accelerator
          Cachos 2.0
    Luis Henrique Okama
         Tollef Fog Heen
          Mario Carvalho
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...
Why are CMS-es slow?

   Complex content generation process
   Single database prevents clustering
   Expensive software d...
Why are the existing solutions not good enough?

  Squid, ancient design, forward proxy
  Apache, not what it's built for,...
What is Varnish?

 Dedicated HTTP accelerator
 Focus on server-side speedups
 Policy control
 High performance
 Varnish Co...
High performance

 11 syscalls + 7 locks for a cache hit
 Work with the OS, not against it.
 Multi-CPU, multi-core
 64 bit...
Policy control

  Override TTLs
  Add, remove or change headers
  Strip cookies
  Rewrite URLs
  Invalidate objects in the...
Varnish Configuration Language

 Simple domain specific language
 Compiled via C language to binary
     Transparently!
 D...
VCL Example

  acl some_acl { "10.0.0.0/8" }
  if (client.ip ~ some_acl) {
      pass;
  }

  if (req.http.host ~ "foo.com...
Shared memory logfile

 Fast
 Custom log tailers
    varnishtop
    varnishlog
    varnishhist
    varnishncsa
    varnish...
Globo.com cache infrastructure
Comparative
  scalability
  setup time
  cost
  open source
  throughput
  physical space
Comparative
  scalability
  setup time
  cost
  open source
  throughput
  physical space
Comparative
  scalability
  setup time
  cost
  open source
  throughput
  physical space
Comparative
  scalability
  setup time
  cost
  open source
  throughput
  physical space
Comparative
  scalability
  setup time
  cost
  open source
  throughput
  physical space
Comparative
  scalability
  setup time
  cost
  open source
  throughput
  physical space
Comparative
  scalability
  setup time
  cost
  open source
  throughput
  physical space
Some data
Conclusion
  software customization
  work set
Real life performance
Questions
Contacts

  Luis H. Okama
  okama@corp.globo.com (www.globo.com)
  Mario Carvalho
  mariocar@corp.globo.com (www.globo.com...
Upcoming SlideShare
Loading in...5
×

Globo.com & Varnish

4,545

Published on

Globo.com & Varnish

  1. 1. HTTP accelerator Cachos 2.0 Luis Henrique Okama Tollef Fog Heen Mario Carvalho
  2. 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. 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. 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. 5. What is Varnish? Dedicated HTTP accelerator Focus on server-side speedups Policy control High performance Varnish Configuration Language Shared memory log
  6. 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. 7. Policy control Override TTLs Add, remove or change headers Strip cookies Rewrite URLs Invalidate objects in the cache
  8. 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. 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. 10. Shared memory logfile Fast Custom log tailers varnishtop varnishlog varnishhist varnishncsa varnishstat
  11. 11. Globo.com cache infrastructure
  12. 12. Comparative scalability setup time cost open source throughput physical space
  13. 13. Comparative scalability setup time cost open source throughput physical space
  14. 14. Comparative scalability setup time cost open source throughput physical space
  15. 15. Comparative scalability setup time cost open source throughput physical space
  16. 16. Comparative scalability setup time cost open source throughput physical space
  17. 17. Comparative scalability setup time cost open source throughput physical space
  18. 18. Comparative scalability setup time cost open source throughput physical space
  19. 19. Some data
  20. 20. Conclusion software customization work set
  21. 21. Real life performance
  22. 22. Questions
  23. 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

×