altitude sf 2017: optimizing your hit rate
TRANSCRIPT
![Page 1: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/1.jpg)
Optimizing Your Cache Hit Ratio
Léon BrocardSales Engineer | Fastly
Paolo AlvaradoCustomer Support Manager | Fastly
![Page 2: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/2.jpg)
Léon Brocard
Systems Engineer
Fastly London
Paolo Alvarado
Customer Support Manager
Fastly Tokyo
![Page 3: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/3.jpg)
Cache hit ratioWhy do we cache?Caching on FastlyHTTP cachingOverriding cachingCaching patternsFuture
![Page 4: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/4.jpg)
This is a talk workshop
![Page 5: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/5.jpg)
Blue slidemeans
interactive
![Page 6: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/6.jpg)
Cachehit
ratio
![Page 7: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/7.jpg)
Where is“Cache hit ratio” on
https://www.fastly.com/
![Page 8: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/8.jpg)
![Page 10: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/10.jpg)
Name & Domainhitrate2017<initials>.global.ssl.fastly.net
Address35.197.9.99
No TLS, Port3000
![Page 11: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/11.jpg)
Name & Domainhitrate2017lb.global.ssl.fastly.net
Address35.197.9.99
No TLS, Port3000
![Page 12: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/12.jpg)
![Page 13: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/13.jpg)
http://hitrate2017lb.global.ssl.fastly.net/
![Page 14: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/14.jpg)
![Page 15: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/15.jpg)
Why do we cache?
![Page 16: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/16.jpg)
![Page 17: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/17.jpg)
Decrease pageload time
![Page 18: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/18.jpg)
Level Capacity Latency
Can on my desk
1 can ~1s
My fridge 10 cans ~30s
Local shop 500 cans ~5m
Supermarket 10k cans ~90m
![Page 19: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/19.jpg)
Level Capacity Latency
Can on my desk
1 can ~1s
My fridge 10 cans ~30s
Local shop 500 cans ~5m
Supermarket 10k cans ~90m
![Page 20: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/20.jpg)
Level Capacity Latency
Cash in my wallet
$50 ~1s
Local ATM $200 ~5m
Bank $1,000 ~20m
![Page 21: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/21.jpg)
Level Capacity Latency
Plate 1 serving ~1s
Serving dish 10 servings ~1m
Kitchen 100 servings ~5m
![Page 22: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/22.jpg)
![Page 23: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/23.jpg)
Level Capacity Latency
L1 cache 64 KiB per core ~1ns
L2 cache 256 KiB per core ~4ns
L3 cache Up to 2 MiB per core, shared
~20ns
Main memory Up to 64 GB ~100ns
![Page 24: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/24.jpg)
Level Capacity Latency
Browser ~Megabytes ~0.1ms
CDN ~Gigabytes ~5ms
Origin ~Terabytes ~500ms
![Page 25: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/25.jpg)
Cache?
![Page 26: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/26.jpg)
L'écureuil roux cache ses provisions pour l'hiver
![Page 27: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/27.jpg)
Hit Miss
![Page 28: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/28.jpg)
![Page 29: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/29.jpg)
![Page 30: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/30.jpg)
![Page 31: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/31.jpg)
Scenario Origin requests / sec
EC2 instances
No CDN 2,000 40
50% CHR 1,000 20
80% CHR 400 8
90% CHR 200 4
95% CHR 100 2
![Page 32: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/32.jpg)
![Page 33: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/33.jpg)
![Page 34: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/34.jpg)
Representativetime periodtraffic
![Page 35: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/35.jpg)
Why is latency so important?
![Page 36: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/36.jpg)
Wi-Fi Mobile
HTTPTCP/IP
![Page 37: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/37.jpg)
![Page 38: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/38.jpg)
GET /technology/2016/jul/15/how-the-internet-was-invented-1976-arpa-kahn-cerf HTTP/1.1Host: www.theguardian.com
![Page 39: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/39.jpg)
HTTP/1.1 200 OKContent-Type: text/html; charset=utf-8Content-Length: 110502
<!DOCTYPE html>...
![Page 40: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/40.jpg)
![Page 41: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/41.jpg)
Visithitrate2017lb.global.ssl.fastly.net
View ▶ Developer ▶ Developer Tools
Network tab
Reload, ⌘R, shift-⌘R
![Page 42: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/42.jpg)
c
![Page 43: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/43.jpg)
![Page 44: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/44.jpg)
![Page 45: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/45.jpg)
![Page 46: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/46.jpg)
![Page 47: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/47.jpg)
![Page 48: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/48.jpg)
![Page 49: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/49.jpg)
1.5s 2.0s 3.5s 21.0s
![Page 50: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/50.jpg)
![Page 51: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/51.jpg)
www.webpagetest.orgURL: docs.fastly.comEC2 location with low pending testsConnection DSL, capture video, keep test private
![Page 52: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/52.jpg)
Here’s one I prepared earlier:
http://fastly.us/2sybe4q
![Page 53: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/53.jpg)
Back to developer toolsRight click on table headingResponse headers ▶ Add “Cache-Control”Response headers ▶ Manage header columns ▶ Add custom header → “X-Cache”
![Page 54: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/54.jpg)
![Page 55: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/55.jpg)
![Page 56: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/56.jpg)
![Page 57: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/57.jpg)
![Page 58: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/58.jpg)
if users double their bandwidth without reducing their RTT significantly, the effect on Web Browsing will be a minimal improvement. However, decreasing RTT, regardless of current bandwidth always helps make web browsing faster
![Page 59: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/59.jpg)
How can we decrease RTT?
![Page 60: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/60.jpg)
How can we decrease RTT?
latency?
![Page 61: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/61.jpg)
Caching
![Page 62: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/62.jpg)
Visithttps://www.fastly-debug.com
/
![Page 63: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/63.jpg)
![Page 64: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/64.jpg)
![Page 65: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/65.jpg)
HTTPcaching
![Page 66: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/66.jpg)
1996 RFC 1945 HTTP/1.0
1997 RFC 2068 HTTP/1.1
1999 RFC 2616 HTTP/1.1
2014 RFC 7230 HTTP/1.1: Message Syntax and Routing
2014 RFC 7231 HTTP/1.1: Semantics and Content
2014 RFC 7232 HTTP/1.1: Conditional Requests
2014 RFC 7233 HTTP/1.1: Range Requests
2014 RFC 7234 HTTP/1.1: Caching
2014 RFC 7235 HTTP/1.1: Authentication
2015 RFC 7540 HTTP/2
![Page 67: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/67.jpg)
Fresh Expired
![Page 68: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/68.jpg)
Last-Modified: Fri, 13 Nov 2015 14:11:55 GMT
If-Modified-Since: Fri, 13 Nov 2015 13:58:51 GMT
HTTP/1.1 304 Not Modified
![Page 69: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/69.jpg)
![Page 70: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/70.jpg)
![Page 71: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/71.jpg)
![Page 72: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/72.jpg)
ETag: “3e8d1bf998b31cb811264f4789eac005”
If-None-Match: “3e8d1bf998b31cb811264f4789eac005”
HTTP/1.1 304 Not Modified
![Page 73: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/73.jpg)
![Page 74: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/74.jpg)
![Page 75: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/75.jpg)
Visithitrate2017lb.global.ssl.fastly.net
Network tabBrowser cachemax-age=60 tabFirst time. Second time.
![Page 76: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/76.jpg)
![Page 77: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/77.jpg)
Cache-Control: max-age=60Date: Thu, 25 May 2017 10:16:09 GMTExpires: Thu, 25 May 2017 10:16:58 GMT
![Page 78: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/78.jpg)
![Page 79: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/79.jpg)
![Page 80: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/80.jpg)
![Page 81: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/81.jpg)
Cache-Control: max-age=1800
![Page 82: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/82.jpg)
Cache-Control: s-max-age=1800, max-age=60Surrogate-Control: max-age=1800
![Page 83: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/83.jpg)
Visithitrate2017lb.global.ssl.fastly.net
Network tabBrowser cache⌘RCache-Control:(none) / private / max-age=60
![Page 84: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/84.jpg)
Tool time
![Page 85: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/85.jpg)
Install Chrome Extension “Browser Cache Hit Ratio”...
https://fastly.us/browser-cachehitratio
![Page 86: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/86.jpg)
Install Chrome Extension “Fastly Cache Hit Ratio”...
https://fastly.us/cachehitratio
![Page 87: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/87.jpg)
Install Chrome Extension “Modheader”...
https://fastly.us/modheader
![Page 88: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/88.jpg)
Visithitrate2017lb.global.ssl.fastly.net
![Page 89: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/89.jpg)
Break
![Page 90: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/90.jpg)
What’s myTTL again?
![Page 91: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/91.jpg)
![Page 92: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/92.jpg)
![Page 93: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/93.jpg)
Changingcaching
![Page 94: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/94.jpg)
On the origin with
HTTP headers
Override in Fastly
![Page 95: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/95.jpg)
No Cache-Control header
![Page 96: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/96.jpg)
![Page 97: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/97.jpg)
Fastly Service ▶ Configuration ▶ Clone active ▶ Settings ▶ Fallback TTL ▶ 10 ▶ Save ▶ Activate ▶ Purge ▶ Purge All ▶ Purge
![Page 98: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/98.jpg)
Cache-Control: private
Cache-Control: max-age=60
![Page 99: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/99.jpg)
Varnish Configuration Language
![Page 100: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/100.jpg)
defaultTTL?
![Page 101: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/101.jpg)
if ( beresp.http.Expires || beresp.http.Surrogate-Control ~ "max-age" || beresp.http.Cache-Control ~"(s-maxage|max-age)" ) { # keep the ttl here } else { # apply the default ttl set beresp.ttl = 10s;}
![Page 102: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/102.jpg)
![Page 103: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/103.jpg)
![Page 104: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/104.jpg)
if (req.url == "/dogs/max-age=60") { set beresp.http.Cache-Control = "max-age=10";}
![Page 105: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/105.jpg)
![Page 106: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/106.jpg)
![Page 107: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/107.jpg)
![Page 108: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/108.jpg)
if (req.url == "/dogs/max-age=60") { set beresp.ttl = 10s; set beresp.http.Cache-Control = "max-age=10";}
![Page 109: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/109.jpg)
sub vcl_fetch { if (beresp.http.Cache-Control) { if (req.url.path ~ "^/users/flair/") { set beresp.http.Cache-Control = "public, max-age=180"; } else { set beresp.http.Cache-Control = "private"; }}
Here’s an example of where VCL comes in very handy. Recently we deployed .NET 4.6.2 which had a very nasty bug that set max-age on cache responses to over 2000 years. The quickest way to mitigate this for all of our services affected was to override that cache header as-needed at the edge. As I write this, the following VCL is active:
![Page 110: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/110.jpg)
What’s in a cache key?
![Page 111: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/111.jpg)
req.http.hostThe incoming request’s host header
req.urlThe full URL including query string
#####GENERATION#####A generation number used for purging all
![Page 112: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/112.jpg)
What do these URLs have in common?
● /search?query=dogs&page=1● /search?page=1&query=dogs
![Page 113: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/113.jpg)
![Page 114: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/114.jpg)
![Page 115: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/115.jpg)
/search?query=dogs&page=1Fastly-Debug-Digest: 9ff1c58f06cac2fd3a48f7c105da6e1d035c770c635371f2ddabdb987818e36c
/search?page=1&query=dogsFastly-Debug-Digest:9ff1c58f06cac2fd3a48f7c105da6e1d035c770c635371f2ddabdb987818e36c
![Page 116: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/116.jpg)
The uncacheable
![Page 117: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/117.jpg)
![Page 118: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/118.jpg)
“Dynamic content is really interesting”—Hooman 2014
Classically, dynamic content was uncacheable because it required interaction with a backend.
![Page 119: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/119.jpg)
How can we cache dynamic
content?
![Page 120: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/120.jpg)
Set-Cookie:Cache-Control: private
![Page 121: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/121.jpg)
![Page 122: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/122.jpg)
How do we force an update for cached
content?
![Page 123: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/123.jpg)
![Page 124: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/124.jpg)
Purging
![Page 125: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/125.jpg)
Single URL PurgeInstant Purge an individual URL.
Surrogate-Key PurgeInstant Purge a particular service of items tagged with a Surrogate-Key.
Purge AllInstant Purge everything from a service.
![Page 126: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/126.jpg)
![Page 127: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/127.jpg)
![Page 128: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/128.jpg)
![Page 129: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/129.jpg)
Offloading from origins
![Page 130: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/130.jpg)
HTTPS everywhere
http://hitrate2017lb.global.ssl.fastly.net/301 Moved Permanently redirect to:https://hitrate2017lb.global.ssl.fastly.net/
![Page 131: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/131.jpg)
HIT-SYNTH
![Page 132: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/132.jpg)
![Page 133: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/133.jpg)
Strict-Transport-Security: max-age=31536000
HSTS Preload List
![Page 134: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/134.jpg)
Serving Stale
![Page 135: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/135.jpg)
What does a negative number here mean?
![Page 136: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/136.jpg)
![Page 137: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/137.jpg)
![Page 138: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/138.jpg)
“Worst-case scenario, we can always ghost-serve. Which actually happened: our Rolling Stone legacy origin was down for three days; the only reason readers could still visit our site without noticing the problem was because we used Fastly’s stale-if-error.”
— Chris Boylan, Director of Engineering,Wenner Media
![Page 139: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/139.jpg)
How can we purge while still
offloading?
![Page 140: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/140.jpg)
Soft PurgeSingle URL PurgeSurrogate-Key Purge
Soft Purging sets an object’s TTL to 0s, forcing revalidation. For best results, use in combination with stale-while-revalidate and/or stale-if-error
![Page 141: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/141.jpg)
Levels of caches
![Page 142: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/142.jpg)
× =
![Page 143: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/143.jpg)
× =
![Page 144: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/144.jpg)
50%CHR
50%CHR
× = 75%CHR
50 50
25 25
![Page 145: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/145.jpg)
90%CHR
90%CHR
× = 99%CHR
90 10
9 1
![Page 146: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/146.jpg)
× =
![Page 147: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/147.jpg)
![Page 148: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/148.jpg)
![Page 149: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/149.jpg)
![Page 150: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/150.jpg)
![Page 151: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/151.jpg)
When the royal baby George Alexander Louis was born in 2013, the Guardian's traffic spiked from an average of 400 requests per second to over 1,000 requests per second. Fastly shielded the Guardian's origin servers from the hundreds of thousands of new requests pouring in, maintaining site uptime and delivering consistent performance for readers around the world. The company’s software architect, Matthew O’Brien, said that it’s difficult to predict news events, but Fastly helps them prepare accordingly.
![Page 152: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/152.jpg)
Cache in browser and Fastly for different
amount of time?
![Page 153: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/153.jpg)
Cache-Control: privateSurrogate-Control: max-age=60, stale-while-revalidate=5, stale-if-error=86400
![Page 154: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/154.jpg)
Cache-Control: max-age=5Surrogate-Control: max-age=3600
![Page 155: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/155.jpg)
“Fastly effectively handled the higher levels of traffic we experienced during the Apple Watch announcement.” Using Fastly’s stale-while-revalidate feature to serve readers slightly outdated content while the cached content was refreshed, WIRED knew readers would never see errors. Zack described stale-while-revalidate as one of Fastly’s “most exciting features.” He said, “It allowed us to successfully serve the live blog while constantly updating its content, ensuring our readers had access to the freshest content without seeing errors."
— Zack Tollman, Lead Engineer at WIRED
![Page 156: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/156.jpg)
Observing cache hit ratio
![Page 157: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/157.jpg)
![Page 158: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/158.jpg)
![Page 159: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/159.jpg)
X-Cache: HITX-Cache-Hits: 649406
![Page 160: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/160.jpg)
X-Cache: HIT, HITX-Cache-Hits: 649406, 922
![Page 161: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/161.jpg)
fastly_info.state
Jun 08 14:27:24 cache-ord1722 papertrail: MISS-CLUSTER "-" [08/Jun/2017:14:27:23 +0000] GET /recipes/?show=Beef%20brochettes HTTP/1.1 200 26
![Page 162: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/162.jpg)
Logging atthe edge
Chris JackelSystems Engineer | Fastly
![Page 163: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/163.jpg)
vcl_hashvs
Vary
![Page 164: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/164.jpg)
Hash Vary
![Page 165: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/165.jpg)
Accept-Encoding: gzip, deflate, br
Content-Encoding: gzipVary: Accept-Encoding
![Page 166: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/166.jpg)
![Page 167: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/167.jpg)
Future
![Page 168: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/168.jpg)
Cache-Control: max-age=31536000, immutable
![Page 169: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/169.jpg)
HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection
![Page 170: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/170.jpg)
Service WorkersThis specification describes a method that enables applications to take advantage of persistent background processing, including hooks to enable bootstrapping of web applications while offline
![Page 171: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/171.jpg)
The power of the network
Andrew BettsPrincipal Developer Advocate | Fastly
![Page 172: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/172.jpg)
Emerging and future web trends
Alex RussellSoftware Engineer | Google
![Page 173: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/173.jpg)
Summary
![Page 174: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/174.jpg)
Cache hit ratioWhy do we cache?Caching on FastlyHTTP cachingOverriding cachingCaching patternsFuture
![Page 175: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/175.jpg)
Run live experiments
![Page 176: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/176.jpg)
![Page 177: Altitude SF 2017: Optimizing your hit rate](https://reader034.vdocuments.us/reader034/viewer/2022051404/5a64cac07f8b9a76038b493d/html5/thumbnails/177.jpg)
Thanks for participatingLéon & Paolo