SlideShare a Scribd company logo
1 of 105
Download to read offline
 
Measuring	
  CDN	
  
Performance	
  
	
  
Hooman	
  Beheshti	
  
VP	
  Technology	
  
Why	
  this	
  matters	
  
•  Performance	
  is	
  one	
  of	
  the	
  main	
  reasons	
  we	
  use	
  a	
  
CDN	
  
•  Measurement	
  often	
  used	
  during	
  evaluation	
  
phase	
  to	
  compare	
  CDNs	
  
–  Most	
  of	
  what	
  we’ll	
  talk	
  about	
  is	
  in	
  this	
  context	
  
•  Seems	
  easy,	
  but	
  isn’t	
  
•  Heavily	
  vendor-­‐influenced	
  
–  “Ok	
  Google:	
  define	
  irony!”	
  
Goals	
  
•  What	
  does	
  the	
  measurement	
  landscape	
  look	
  like	
  
•  Share	
  measurement	
  experiences	
  
•  Help	
  guide	
  towards	
  good	
  testing	
  plan	
  if/when	
  
you	
  decide	
  to	
  do	
  	
  this	
  
Background	
  
Delivery:	
  static/cached	
  objects	
  
Client	
  
CDN	
  Node	
  
Origin	
  
Delivery:	
  dynamic/uncached	
  objects	
  
What	
  we’ll	
  be	
  focusing	
  on	
  
•  Only	
  on	
  delivery	
  and	
  not	
  all	
  the	
  other	
  features	
  
CDNs	
  provide	
  
•  How	
  we	
  measure	
  
•  Metrics	
  to	
  measure	
  
•  What	
  to	
  measure	
  
•  Some	
  gotchas,	
  misconceptions,	
  and	
  common	
  
mistakes	
  
Measurement	
  Techniques	
  
(how	
  we	
  measure)	
  
Measurement	
  techniques	
  
•  Pretend	
  Users	
  
–  Synthetic	
  tests	
  
–  Not	
  actual	
  users	
  
•  Real	
  Users	
  
–  In	
  the	
  browser	
  
–  Actual	
  users	
  
Synthetic	
  testing	
  
Synthetic	
  testing	
  
•  Usually	
  a	
  large	
  network	
  of	
  test	
  nodes	
  all	
  over	
  
the	
  globe	
  
•  Highly	
  scalable,	
  can	
  do	
  lots	
  of	
  tests	
  at	
  once	
  
•  Many	
  vendors	
  that	
  have	
  this	
  model	
  
– Examples:	
  Catchpoint,	
  Dynatrace(Gomez),	
  
Keynote,	
  Pingdom,	
  etc	
  
Synthetic	
  testing	
  
•  Built	
  to	
  do	
  full	
  performance	
  and	
  availability	
  testing	
  
–  Lots	
  of	
  “monitors”	
  –	
  emulating	
  what	
  real	
  users	
  do	
  
–  DNS,	
  Traceroute,	
  Ping,	
  Streaming,	
  Mobile	
  
–  HTTP	
  
•  Object	
  
•  Browser	
  
•  Transactions/Flows	
  
	
  
•  Tests	
  set	
  up	
  with	
  some	
  frequency	
  to	
  repeatedly	
  test	
  things	
  
–  Aggregates	
  reported	
  
Backbone	
  nodes	
  
•  Test	
  machines	
  sitting	
  in	
  datacenters	
  all	
  around	
  the	
  globe	
  
•  Really	
  good	
  at:	
  
–  Availability	
  and	
  reachability	
  
–  Scale	
  
–  Backend	
  problems	
  
–  Global	
  reach	
  
•  Terrible	
  indicators	
  of	
  raw	
  performance	
  
–  No	
  latency	
  
–  Infinite	
  bandwidth	
  
Backbone	
  nodes	
  
•  Test	
  machines	
  sitting	
  in	
  datacenters	
  all	
  around	
  the	
  globe	
  
•  Really	
  good	
  at:	
  
–  Availability	
  and	
  reachability	
  
–  Scale	
  
–  Backend	
  problems	
  
–  Global	
  reach	
  
•  Often	
  terrible	
  indicators	
  of	
  raw	
  performance	
  
–  No	
  latency	
  
–  Infinite	
  bandwidth	
  
https://www.flickr.com/photos/stars6/4381851322/	
  
Last	
  mile	
  nodes	
  
•  Test	
  machines	
  sitting	
  behind	
  a	
  real	
  home-­‐like	
  
internet	
  connection	
  
•  Much	
  better	
  at	
  reporting	
  what	
  you	
  can	
  expect	
  
from	
  users,	
  but	
  sometimes	
  unreliable	
  
•  Also	
  not	
  as	
  dense	
  in	
  deployment	
  
backbone	
   last	
  mile	
  
Real	
  users	
  (RUM)	
  
RUM	
  
•  Use	
  javascript	
  to	
  collect	
  timing	
  metrics	
  
•  Can	
  collect	
  lots	
  of	
  things	
  through	
  browser	
  
APIs	
  
– Page	
  metrics,	
  asset	
  metrics,	
  user-­‐defined	
  metrics	
  
Use	
  test	
  assets	
  
•  Use	
  this	
  model	
  to	
  initiate	
  tests	
  in	
  the	
  browser	
  
•  Some	
  vendors:	
  
– Cedexis,	
  TurboBytes,	
  CloudHarmony,	
  more…	
  
– Usually,	
  this	
  isn’t	
  their	
  business,	
  but	
  the	
  data	
  
drives	
  their	
  main	
  business	
  objectives	
  
•  You	
  can	
  build	
  this	
  yourself	
  too	
  
Use	
  real	
  assets	
  in	
  the	
  page	
  
•  Collect	
  timings	
  from	
  actual	
  objects	
  
–  Resource	
  timing	
  
•  Vendors	
  
–  SOASTA,	
  New	
  Relic,	
  most	
  synthetic	
  vendors	
  
–  Boomerang	
  (open	
  source)	
  
–  Google	
  Analytics	
  User	
  Timings	
  
DATA,	
  DATA,	
  DATA	
  
•  For	
  either	
  RUM	
  technique,	
  we	
  need	
  A	
  LOT	
  of	
  
data	
  
•  Too	
  much	
  variance	
  
– Most	
  vendors	
  don’t	
  use	
  averages	
  
– Medians,	
  percentiles,	
  and	
  histograms	
  
Measurement	
  Metrics	
  
Client	
   Server	
  
Client	
   Server	
  
1	
  x	
  RTT	
  	
  
Client	
   Server	
  
DNS	
  
DNS	
  
TCP	
  
Client	
   Server	
  
DNS	
  
DNS	
  
TCP	
  
Client	
   Server	
  
DNS	
  
DNS	
  
(TLS)	
  
TCP	
  
Client	
   Server	
  
DNS	
  
DNS	
  
(TLS)	
  
HTTP	
  (TTFB)	
  
TCP	
  
Client	
   Server	
  
DNS	
  
DNS	
  
(TLS)	
  
HTTP	
  (TTFB)	
  
HTTP	
  (Download)	
  
DNS	
   TCP	
   (TLS)	
   TTFB	
   Download	
  (TTLB-­‐TTFB)	
  
Time	
  
DNS	
   TCP	
   (TLS)	
   TTFB	
   Download	
  (TTLB-­‐TTFB)	
  
Time	
  
DNS	
   RTT	
  to	
  DNS	
  server,	
  DNS	
  iterations,	
  DNS	
  caching	
  and	
  	
  TTLs	
  
DNS	
   TCP	
   (TLS)	
   TTFB	
   Download	
  (TTLB-­‐TTFB)	
  
Time	
  
DNS	
  
TCP	
  
RTT	
  to	
  DNS	
  server,	
  DNS	
  iterations,	
  DNS	
  caching	
  and	
  	
  TTLs	
  
RTT	
  to	
  cache	
  server	
  (CDN	
  footprint	
  &	
  routing	
  algorithms)	
  
DNS	
   TCP	
   (TLS)	
   TTFB	
   Download	
  (TTLB-­‐TTFB)	
  
Time	
  
DNS	
  
TCP	
  
(TLS)	
  
RTT	
  to	
  DNS	
  server,	
  DNS	
  iterations,	
  DNS	
  caching	
  and	
  	
  TTLs	
  
RTT	
  to	
  cache	
  server	
  (CDN	
  footprint	
  &	
  routing	
  algorithms)	
  
RTT	
  to	
  cache	
  server	
  (or	
  RTTs	
  depending	
  on	
  TLS	
  False	
  Start),	
  
efficiency	
  of	
  TLS	
  engine	
  
DNS	
   TCP	
   (TLS)	
   TTFB	
   Download	
  (TTLB-­‐TTFB)	
  
Time	
  
DNS	
  
TCP	
  
(TLS)	
  
TTFB	
  
RTT	
  to	
  DNS	
  server,	
  DNS	
  iterations,	
  DNS	
  caching	
  and	
  	
  TTLs	
  
RTT	
  to	
  cache	
  server	
  (CDN	
  footprint	
  &	
  routing	
  algorithms)	
  
RTT	
  to	
  cache	
  server	
  (or	
  RTTs	
  depending	
  on	
  TLS	
  False	
  Start),	
  
efficiency	
  of	
  TLS	
  engine	
  
RTT	
  to	
  where	
  the	
  object	
  is	
  stored	
  +	
  storage	
  efficiency	
  	
  
(different	
  for	
  requests	
  to	
  origin);	
  lower	
  bound	
  =	
  network	
  RTT	
  
DNS	
   TCP	
   (TLS)	
   TTFB	
   Download	
  (TTLB-­‐TTFB)	
  
Time	
  
DNS	
  
TCP	
  
(TLS)	
  
TTFB	
  
TTLB-­‐TTFB	
  
RTT	
  to	
  DNS	
  server,	
  DNS	
  iterations,	
  DNS	
  caching	
  and	
  	
  TTLs	
  
RTT	
  to	
  cache	
  server	
  (CDN	
  footprint	
  &	
  routing	
  algorithms)	
  
RTT	
  to	
  cache	
  server	
  (or	
  RTTs	
  depending	
  on	
  TLS	
  False	
  Start),	
  
efficiency	
  of	
  TLS	
  engine	
  
RTT	
  to	
  where	
  the	
  object	
  is	
  stored	
  +	
  storage	
  efficiency	
  	
  
(different	
  for	
  requests	
  to	
  origin);	
  lower	
  bound	
  =	
  network	
  RTT	
  
Bandwidth,	
  congestion	
  avoidance	
  algorithms	
  (and	
  RTT!)	
  
Core	
  object	
  metrics	
  
•  Not	
  every	
  request	
  experiences	
  every	
  metric:	
  
– DNS:	
  once	
  per	
  domain	
  
– TCP/TLS	
  setup	
  once	
  per	
  connection	
  
– TTFB/Download	
  for	
  every	
  object	
  (not	
  already	
  in	
  
browser	
  cache)	
  
	
  
Resource	
  timing	
  
http://www.w3.org/TR/resource-­‐timing/	
  
Resource	
  timing	
  
window.performance.getEntries()
Mistakes	
  we	
  make	
  
	
  
(when	
  evaluating)	
  
CDN	
  
X	
  
vs	
  
CDN	
  
Y	
  
“I’ll	
  pick	
  an	
  image	
  from	
  my	
  home	
  
page,	
  use	
  backbone	
  synthetic	
  
tests	
  from	
  all	
  over	
  the	
  world	
  and	
  
pick	
  the	
  CDN	
  that	
  has	
  the	
  fastest	
  
average	
  time”	
  
“let’s	
  test	
  an	
  asset	
  via	
  	
  RUM	
  on	
  a	
  
million	
  page	
  views	
  a	
  day	
  and	
  pick	
  
the	
  fastest	
  CDN”	
  
“let’s	
  run	
  webpagetest	
  on	
  both	
  
CDNs	
  and	
  go	
  with	
  whichever	
  has	
  
a	
  faster	
  page	
  load	
  time”	
  
~$time curl –v http://…
we	
  measure	
  the	
  wrong	
  thing	
  	
  
Web	
  application:	
  objects	
  
•  Your	
  application	
  should	
  determine	
  what	
  you	
  test:	
  
–  Objects	
  served	
  from	
  the	
  edge	
  
–  Objects	
  served	
  from	
  origin	
  (through	
  CDN)	
  
	
  
•  If	
  HTML	
  is	
  from	
  origin	
  (through	
  CDN),	
  we	
  must	
  
measure	
  it	
  
–  Essential	
  to	
  critical	
  page	
  metrics	
  
Web	
  application:	
  object	
  sizes	
  
•  On	
  any	
  page	
  
–  DNS	
  queries	
  only	
  happen	
  a	
  small	
  
number	
  of	
  times	
  
–  6	
  TCP	
  connections	
  per	
  domain	
  
–  1	
  TLS	
  setup	
  per	
  connection	
  
–  Many	
  many	
  many	
  HTTP	
  fetches	
  
•  Core	
  metrics	
  
–  TTFB	
  
–  Download	
  (TTLB-­‐TTFB)	
  if	
  
important	
  large	
  objects	
  
–  Should	
  have	
  a	
  good	
  idea	
  of	
  DNS/
TCP/TLS,	
  but	
  less	
  critical	
  
Web	
  application	
  
•  If	
  CDN	
  only	
  for	
  static/cacheable	
  objects:	
  
–  One	
  or	
  two	
  representative	
  assets	
  	
  
–  TTFB	
  and	
  maybe	
  download	
  most	
  important	
  
Client	
   CDN	
  Node	
  
X-Cache: HIT
Web	
  application	
  
•  If	
  CDN	
  also	
  for	
  whole	
  site	
  (HTML	
  going	
  through	
  CDN)	
  
–  Sample	
  of	
  key	
  HTML	
  pages,	
  delivered	
  from	
  origin	
  
–  TTFB	
  will	
  show	
  efficiency	
  of	
  routing	
  (and	
  connection	
  
management)	
  	
  to	
  origin	
  
–  TTLB	
  will	
  show	
  efficiency	
  of	
  delivery	
  
Web	
  Server	
  Client	
   CDN	
  Node	
  
Web	
  application	
  
•  If	
  CDN	
  also	
  for	
  whole	
  site	
  (HTML	
  going	
  through	
  CDN)	
  
–  Sample	
  of	
  key	
  HTML	
  pages,	
  delivered	
  from	
  origin	
  
–  TTFB	
  will	
  show	
  efficiency	
  of	
  routing	
  (and	
  connection	
  
management)	
  	
  to	
  origin	
  
–  TTLB	
  will	
  show	
  efficiency	
  of	
  delivery	
  
Web	
  Server	
  Client	
   CDN	
  Node	
   CDN	
  Node	
  
we	
  measure	
  the	
  wrong	
  way	
  
Backbone	
  
Nodes	
  
(For	
  true	
  performance	
  measurements)	
  
%	
  of	
  tests	
  
msec	
  
TCP	
  Connect	
  Time	
  Histogram	
  (BB	
  nodes)	
  
object	
  metrics	
  	
  
	
  
or	
  
	
  
page	
  metrics	
  
Download:	
  15Mbps	
  
	
  
Upload:	
  5Mbps	
  
	
  
Latency:	
  10	
  ms,	
  25	
  ms	
  
10	
  msec	
   25	
  msec	
  
10	
  msec	
   25	
  msec	
  
onload	
   Speed	
  Index	
   Start	
  Render	
  
10	
  msec	
  
25	
  msec	
  
What	
  the…???	
  
•  We	
  always	
  assume	
  “all	
  things	
  equal”	
  
•  Too	
  many	
  factors	
  affect	
  page	
  load	
  time	
  
–  3rd	
  parties	
  (sometimes	
  varying),	
  content	
  form	
  origin,	
  layout,	
  JS	
  
execution,	
  etc	
  
•  Too	
  much	
  variance	
  
Source:	
  httparchive.org	
  
To	
  be	
  clear…	
  
•  Always	
  use	
  webpagetest	
  (or	
  something	
  like	
  it)	
  to	
  understand	
  your	
  
application’s	
  performance	
  profile	
  
•  Continue	
  to	
  monitor	
  application	
  performance,	
  and	
  always	
  spot	
  
check	
  
•  Be	
  extremely	
  careful	
  when	
  using	
  it	
  to	
  compare	
  CDN	
  performance,	
  
it	
  can	
  mislead	
  you	
  
–  If	
  using	
  RUM	
  to	
  measure	
  page	
  metrics,	
  with	
  lots	
  of	
  data,	
  things	
  
become	
  a	
  little	
  more	
  meaningful	
  (data	
  volume	
  handles	
  variance)	
  
we	
  overgeneralize	
  	
  
and	
  	
  
draw	
  the	
  wrong	
  conclusions	
  
Cache	
  hit	
  ratios	
  
Cache	
  hit	
  ratio:	
  traditional	
  calculation	
  
1	
  -­‐	
  	
  
Requests	
  to	
  Origin	
  	
  
Total	
  Requests	
  
Origin	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
TCP	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
HTTP	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
HTTP	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
HTTP	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
HTTP	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
HTTP	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
HOT	
   COLD	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
cache	
  “hit”	
  
Cache	
  hit	
  ratio:	
  traditional	
  calculation	
  
1	
  -­‐	
  	
  
Requests	
  to	
  Origin	
  	
  
Total	
  Requests	
  
Isn’t	
  this	
  better?	
  
Hits	
  
Total	
  Requests	
  
@edge	
  
Isn’t	
  this	
  better?	
  
Hits	
  
Hits	
  +	
  Misses	
  
@edge	
  
Cache	
  hit	
  ratio	
  
vs.	
  1	
  -­‐	
  	
  Requests	
  to	
  Origin	
  	
  
Total	
  Requests	
  
Hits	
  
Hits	
  +	
  Misses	
  
@edge	
  
Cache	
  hit	
  ratio	
  
vs.	
  1	
  -­‐	
  	
  Requests	
  to	
  Origin	
  	
  
Total	
  Requests	
  
Hits	
  
Hits	
  +	
  Misses	
  
@edge	
  
Offload	
  
Cache	
  hit	
  ratio	
  
vs.	
  1	
  -­‐	
  	
  Requests	
  to	
  Origin	
  	
  
Total	
  Requests	
  
Hits	
  
Hits	
  +	
  Misses	
  
@edge	
  
Offload	
   Performance	
  
Effect	
  on	
  long	
  tail	
  content	
  
Effect	
  on	
  long	
  tail	
  content	
  
(long	
  tail:	
  Cacheable	
  but	
  seldom	
  fetched)	
  
Popular	
   Medium	
  Tail	
  (1hr)	
   Long	
  tail	
  	
  (6hr)	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
Popular	
   Medium	
  Tail	
  (1hr)	
   Long	
  tail	
  	
  (6hr)	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
Connect	
  (median)	
  
Popular	
   14msec	
  
1hr	
  Tail	
   15msec	
  
6hr	
  Tail	
   16msec	
  
Popular	
   Medium	
  Tail	
  (1hr)	
   Long	
  tail	
  	
  (6hr)	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
Connect	
  (median)	
  
Popular	
   14msec	
  
1hr	
  Tail	
   15msec	
  
6hr	
  Tail	
   16msec	
  6,400+	
  measurements	
  
77,000+	
  measurements	
  
38,000+	
  measurements	
  
Popular	
   Medium	
  Tail	
  (1hr)	
   Long	
  tail	
  	
  (6hr)	
  
Connect	
  (median)	
   Wait	
  (median)	
  
Popular	
   14msec	
   19msec	
  
1hr	
  Tail	
   15msec	
   26msec	
  
6hr	
  Tail	
   16msec	
   32msec	
  6,400+	
  measurements	
  
77,000+	
  measurements	
  
38,000+	
  measurements	
  
Popular	
   Medium	
  Tail	
  (1hr)	
   Long	
  tail	
  	
  (6hr)	
  
Isn’t	
  this	
  better?	
  
Popular	
   Medium	
  Tail	
  (1hr)	
   Long	
  tail	
  	
  (6hr)	
  
Popular	
   Medium	
  Tail	
  (1hr)	
   Long	
  tail	
  	
  (6hr)	
  
After	
  all	
  that….	
  
How	
  much	
  of	
  this	
  really	
  matter?	
  	
  
	
  
(when	
  trying	
  to	
  choose	
  between	
  multiple	
  	
  CDNs)	
  
The	
  bigger	
  picture	
  
•  It’s	
  really	
  easy	
  to	
  lock	
  in	
  on	
  a	
  metric	
  
•  Performance	
  absolutely	
  matters	
  
•  True	
  performance	
  isn’t	
  always	
  as	
  easy	
  to	
  
measure	
  
We	
  must	
  ask	
  questions	
  …	
  
What’s	
  the	
  storage	
  model	
  and	
  how	
  does	
  
it	
  affect	
  long	
  tail	
  content?	
  
What	
  should	
  I	
  expect	
  with	
  	
  
cache	
  hit	
  ratios	
  	
  
for	
  offload	
  and	
  performance?	
  
Footprint?	
  
	
  
(is	
  what	
  I’m	
  testing	
  the	
  same	
  as	
  what	
  I’m	
  buying?)	
  
HTTP	
  vs	
  TLS	
  footprint?	
  
Can	
  I	
  serve	
  stale	
  content	
  if	
  necessary?	
  
(stale-while-revalidate & stale-if-error)
What	
  if	
  I	
  can	
  cache	
  something	
  I	
  didn’t	
  
think	
  I	
  could?	
  
Key	
  takeaways	
  
•  Everything	
  is	
  application-­‐dependent	
  
–  Evaluate	
  how	
  your	
  application	
  works	
  and	
  what	
  impacts	
  performance	
  the	
  
most	
  
•  Don’t	
  get	
  locked	
  into	
  a	
  single	
  number/metric	
  
•  Always	
  know	
  your	
  application	
  performance	
  and	
  bottlenecks	
  
•  Be	
  mindful	
  of	
  the	
  bigger	
  picture	
  
•  Don’t	
  stop	
  measuring!	
  
Thank	
  you!	
  
hooman@fastly.com	
  
	
  
office	
  hours	
  Friday	
  @lunch	
  
	
  

More Related Content

What's hot

Apache flume by Swapnil Dubey
Apache flume by Swapnil DubeyApache flume by Swapnil Dubey
Apache flume by Swapnil DubeySwapnil Dubey
 
Apache Flume - Streaming data easily to Hadoop from any source for Telco oper...
Apache Flume - Streaming data easily to Hadoop from any source for Telco oper...Apache Flume - Streaming data easily to Hadoop from any source for Telco oper...
Apache Flume - Streaming data easily to Hadoop from any source for Telco oper...DataWorks Summit
 
Big data in the energy sector
Big data in the energy sectorBig data in the energy sector
Big data in the energy sectorFileCatalyst
 
Feb 2013 HUG: Large Scale Data Ingest Using Apache Flume
Feb 2013 HUG: Large Scale Data Ingest Using Apache FlumeFeb 2013 HUG: Large Scale Data Ingest Using Apache Flume
Feb 2013 HUG: Large Scale Data Ingest Using Apache FlumeYahoo Developer Network
 
Network latency - measurement and improvement
Network latency - measurement and improvementNetwork latency - measurement and improvement
Network latency - measurement and improvementMatt Willsher
 
Data Aggregation At Scale Using Apache Flume
Data Aggregation At Scale Using Apache FlumeData Aggregation At Scale Using Apache Flume
Data Aggregation At Scale Using Apache FlumeArvind Prabhakar
 
How Time To First Byte (TTFB) Impacts Your Site’s Performance
How Time To First Byte (TTFB) Impacts Your Site’s PerformanceHow Time To First Byte (TTFB) Impacts Your Site’s Performance
How Time To First Byte (TTFB) Impacts Your Site’s PerformanceMedianova
 
Query Pulsar Streams using Apache Flink
Query Pulsar Streams using Apache FlinkQuery Pulsar Streams using Apache Flink
Query Pulsar Streams using Apache FlinkStreamNative
 
Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014
Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014
Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014Steve Hoffman
 
Flume and Hadoop performance insights
Flume and Hadoop performance insightsFlume and Hadoop performance insights
Flume and Hadoop performance insightsOmid Vahdaty
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2Fastly
 
Message Queuing on a Large Scale: IMVUs stateful real-time message queue for ...
Message Queuing on a Large Scale: IMVUs stateful real-time message queue for ...Message Queuing on a Large Scale: IMVUs stateful real-time message queue for ...
Message Queuing on a Large Scale: IMVUs stateful real-time message queue for ...Jon Watte
 
Large scale near real-time log indexing with Flume and SolrCloud
Large scale near real-time log indexing with Flume and SolrCloudLarge scale near real-time log indexing with Flume and SolrCloud
Large scale near real-time log indexing with Flume and SolrCloudDataWorks Summit
 
Deploying Apache Flume to enable low-latency analytics
Deploying Apache Flume to enable low-latency analyticsDeploying Apache Flume to enable low-latency analytics
Deploying Apache Flume to enable low-latency analyticsDataWorks Summit
 
Big data: Loading your data with flume and sqoop
Big data:  Loading your data with flume and sqoopBig data:  Loading your data with flume and sqoop
Big data: Loading your data with flume and sqoopChristophe Marchal
 
Apache Flume - DataDayTexas
Apache Flume - DataDayTexasApache Flume - DataDayTexas
Apache Flume - DataDayTexasArvind Prabhakar
 

What's hot (20)

Apache flume by Swapnil Dubey
Apache flume by Swapnil DubeyApache flume by Swapnil Dubey
Apache flume by Swapnil Dubey
 
Apache Flume - Streaming data easily to Hadoop from any source for Telco oper...
Apache Flume - Streaming data easily to Hadoop from any source for Telco oper...Apache Flume - Streaming data easily to Hadoop from any source for Telco oper...
Apache Flume - Streaming data easily to Hadoop from any source for Telco oper...
 
Big data in the energy sector
Big data in the energy sectorBig data in the energy sector
Big data in the energy sector
 
Feb 2013 HUG: Large Scale Data Ingest Using Apache Flume
Feb 2013 HUG: Large Scale Data Ingest Using Apache FlumeFeb 2013 HUG: Large Scale Data Ingest Using Apache Flume
Feb 2013 HUG: Large Scale Data Ingest Using Apache Flume
 
Network latency - measurement and improvement
Network latency - measurement and improvementNetwork latency - measurement and improvement
Network latency - measurement and improvement
 
Data Aggregation At Scale Using Apache Flume
Data Aggregation At Scale Using Apache FlumeData Aggregation At Scale Using Apache Flume
Data Aggregation At Scale Using Apache Flume
 
How Time To First Byte (TTFB) Impacts Your Site’s Performance
How Time To First Byte (TTFB) Impacts Your Site’s PerformanceHow Time To First Byte (TTFB) Impacts Your Site’s Performance
How Time To First Byte (TTFB) Impacts Your Site’s Performance
 
Query Pulsar Streams using Apache Flink
Query Pulsar Streams using Apache FlinkQuery Pulsar Streams using Apache Flink
Query Pulsar Streams using Apache Flink
 
Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014
Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014
Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014
 
CoAP Talk
CoAP TalkCoAP Talk
CoAP Talk
 
Flume and Hadoop performance insights
Flume and Hadoop performance insightsFlume and Hadoop performance insights
Flume and Hadoop performance insights
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2
 
Load balancing at tuenti
Load balancing at tuentiLoad balancing at tuenti
Load balancing at tuenti
 
RabbitMQ + OpenLDAP
RabbitMQ + OpenLDAPRabbitMQ + OpenLDAP
RabbitMQ + OpenLDAP
 
Message Queuing on a Large Scale: IMVUs stateful real-time message queue for ...
Message Queuing on a Large Scale: IMVUs stateful real-time message queue for ...Message Queuing on a Large Scale: IMVUs stateful real-time message queue for ...
Message Queuing on a Large Scale: IMVUs stateful real-time message queue for ...
 
Large scale near real-time log indexing with Flume and SolrCloud
Large scale near real-time log indexing with Flume and SolrCloudLarge scale near real-time log indexing with Flume and SolrCloud
Large scale near real-time log indexing with Flume and SolrCloud
 
Deploying Apache Flume to enable low-latency analytics
Deploying Apache Flume to enable low-latency analyticsDeploying Apache Flume to enable low-latency analytics
Deploying Apache Flume to enable low-latency analytics
 
Big data: Loading your data with flume and sqoop
Big data:  Loading your data with flume and sqoopBig data:  Loading your data with flume and sqoop
Big data: Loading your data with flume and sqoop
 
Cloudera's Flume
Cloudera's FlumeCloudera's Flume
Cloudera's Flume
 
Apache Flume - DataDayTexas
Apache Flume - DataDayTexasApache Flume - DataDayTexas
Apache Flume - DataDayTexas
 

Similar to Measuring CDN performance and why you're doing it wrong

Content Devilery Network
Content Devilery NetworkContent Devilery Network
Content Devilery NetworkSanjiv Pradhan
 
Data Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby UsageData Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby UsageSATOSHI TAGOMORI
 
Http - All you need to know
Http - All you need to knowHttp - All you need to know
Http - All you need to knowGökhan Şengün
 
A Modern Approach to Performance Monitoring
A Modern Approach to Performance MonitoringA Modern Approach to Performance Monitoring
A Modern Approach to Performance MonitoringCliff Crocker
 
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...Amazon Web Services
 
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...Amazon Web Services
 
Overview of data analytics service: Treasure Data Service
Overview of data analytics service: Treasure Data ServiceOverview of data analytics service: Treasure Data Service
Overview of data analytics service: Treasure Data ServiceSATOSHI TAGOMORI
 
haproxy-150423120602-conversion-gate01.pdf
haproxy-150423120602-conversion-gate01.pdfhaproxy-150423120602-conversion-gate01.pdf
haproxy-150423120602-conversion-gate01.pdfPawanVerma628806
 
DNS Measurements
DNS MeasurementsDNS Measurements
DNS MeasurementsAFRINIC
 
Edge 2014: A Modern Approach to Performance Monitoring
Edge 2014: A Modern Approach to Performance MonitoringEdge 2014: A Modern Approach to Performance Monitoring
Edge 2014: A Modern Approach to Performance MonitoringAkamai Technologies
 
Benchmarking NGINX for Accuracy and Results
Benchmarking NGINX for Accuracy and ResultsBenchmarking NGINX for Accuracy and Results
Benchmarking NGINX for Accuracy and ResultsNGINX, Inc.
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghubit-people
 
Content Delivery Network - CDN
Content Delivery Network - CDNContent Delivery Network - CDN
Content Delivery Network - CDNMojtaba HOUSHMAND
 
Performance testing in scope of migration to cloud by Serghei Radov
Performance testing in scope of migration to cloud by Serghei RadovPerformance testing in scope of migration to cloud by Serghei Radov
Performance testing in scope of migration to cloud by Serghei RadovValeriia Maliarenko
 
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Lohika_Odessa_TechTalks
 
Tech talk microservices debugging
Tech talk microservices debuggingTech talk microservices debugging
Tech talk microservices debuggingAndrey Kolodnitsky
 

Similar to Measuring CDN performance and why you're doing it wrong (20)

Content Devilery Network
Content Devilery NetworkContent Devilery Network
Content Devilery Network
 
Data Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby UsageData Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby Usage
 
Http - All you need to know
Http - All you need to knowHttp - All you need to know
Http - All you need to know
 
A Modern Approach to Performance Monitoring
A Modern Approach to Performance MonitoringA Modern Approach to Performance Monitoring
A Modern Approach to Performance Monitoring
 
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
 
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...
 
Best Practices Using RTI Connext DDS
Best Practices Using RTI Connext DDSBest Practices Using RTI Connext DDS
Best Practices Using RTI Connext DDS
 
Overview of data analytics service: Treasure Data Service
Overview of data analytics service: Treasure Data ServiceOverview of data analytics service: Treasure Data Service
Overview of data analytics service: Treasure Data Service
 
haproxy-150423120602-conversion-gate01.pdf
haproxy-150423120602-conversion-gate01.pdfhaproxy-150423120602-conversion-gate01.pdf
haproxy-150423120602-conversion-gate01.pdf
 
HAProxy
HAProxy HAProxy
HAProxy
 
Http2 in practice
Http2 in practiceHttp2 in practice
Http2 in practice
 
DNS Measurements
DNS MeasurementsDNS Measurements
DNS Measurements
 
Edge 2014: A Modern Approach to Performance Monitoring
Edge 2014: A Modern Approach to Performance MonitoringEdge 2014: A Modern Approach to Performance Monitoring
Edge 2014: A Modern Approach to Performance Monitoring
 
Benchmarking NGINX for Accuracy and Results
Benchmarking NGINX for Accuracy and ResultsBenchmarking NGINX for Accuracy and Results
Benchmarking NGINX for Accuracy and Results
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
 
Content Delivery Network - CDN
Content Delivery Network - CDNContent Delivery Network - CDN
Content Delivery Network - CDN
 
Performance testing in scope of migration to cloud by Serghei Radov
Performance testing in scope of migration to cloud by Serghei RadovPerformance testing in scope of migration to cloud by Serghei Radov
Performance testing in scope of migration to cloud by Serghei Radov
 
Slides cao
Slides caoSlides cao
Slides cao
 
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...
 
Tech talk microservices debugging
Tech talk microservices debuggingTech talk microservices debugging
Tech talk microservices debugging
 

More from Fastly

Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2Fastly
 
Altitude San Francisco 2018: Preparing for Video Streaming Events at Scale
Altitude San Francisco 2018: Preparing for Video Streaming Events at ScaleAltitude San Francisco 2018: Preparing for Video Streaming Events at Scale
Altitude San Francisco 2018: Preparing for Video Streaming Events at ScaleFastly
 
Altitude San Francisco 2018: Building the Souther Hemisphere of the Internet
Altitude San Francisco 2018: Building the Souther Hemisphere of the InternetAltitude San Francisco 2018: Building the Souther Hemisphere of the Internet
Altitude San Francisco 2018: Building the Souther Hemisphere of the InternetFastly
 
Altitude San Francisco 2018: The World Cup Stream
Altitude San Francisco 2018: The World Cup StreamAltitude San Francisco 2018: The World Cup Stream
Altitude San Francisco 2018: The World Cup StreamFastly
 
Altitude San Francisco 2018: We Own Our Destiny
Altitude San Francisco 2018: We Own Our DestinyAltitude San Francisco 2018: We Own Our Destiny
Altitude San Francisco 2018: We Own Our DestinyFastly
 
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...Fastly
 
Altitude San Francisco 2018: Moving Off the Monolith: A Seamless Migration
Altitude San Francisco 2018: Moving Off the Monolith: A Seamless MigrationAltitude San Francisco 2018: Moving Off the Monolith: A Seamless Migration
Altitude San Francisco 2018: Moving Off the Monolith: A Seamless MigrationFastly
 
Altitude San Francisco 2018: Bringing TLS to GitHub Pages
Altitude San Francisco 2018: Bringing TLS to GitHub PagesAltitude San Francisco 2018: Bringing TLS to GitHub Pages
Altitude San Francisco 2018: Bringing TLS to GitHub PagesFastly
 
Altitude San Francisco 2018: HTTP Invalidation Workshop
Altitude San Francisco 2018: HTTP Invalidation WorkshopAltitude San Francisco 2018: HTTP Invalidation Workshop
Altitude San Francisco 2018: HTTP Invalidation WorkshopFastly
 
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and Woe
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and WoeAltitude San Francisco 2018: HTTP/2 Tales: Discovery and Woe
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and WoeFastly
 
Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...
Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...
Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...Fastly
 
Altitude San Francisco 2018: Scaling Ethereum to 10B requests per day
Altitude San Francisco 2018: Scaling Ethereum to 10B requests per dayAltitude San Francisco 2018: Scaling Ethereum to 10B requests per day
Altitude San Francisco 2018: Scaling Ethereum to 10B requests per dayFastly
 
Altitude San Francisco 2018: Authentication at the Edge
Altitude San Francisco 2018: Authentication at the EdgeAltitude San Francisco 2018: Authentication at the Edge
Altitude San Francisco 2018: Authentication at the EdgeFastly
 
Altitude San Francisco 2018: WebAssembly Tools & Applications
Altitude San Francisco 2018: WebAssembly Tools & ApplicationsAltitude San Francisco 2018: WebAssembly Tools & Applications
Altitude San Francisco 2018: WebAssembly Tools & ApplicationsFastly
 
Altitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly WorkshopAltitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly WorkshopFastly
 
Altitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORK
Altitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORKAltitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORK
Altitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORKFastly
 
Altitude San Francisco 2018: WAF Workshop
Altitude San Francisco 2018: WAF WorkshopAltitude San Francisco 2018: WAF Workshop
Altitude San Francisco 2018: WAF WorkshopFastly
 
Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge Fastly
 
Altitude San Francisco 2018: Video Workshop Docs
Altitude San Francisco 2018: Video Workshop DocsAltitude San Francisco 2018: Video Workshop Docs
Altitude San Francisco 2018: Video Workshop DocsFastly
 
Altitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the EdgeAltitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the EdgeFastly
 

More from Fastly (20)

Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2
 
Altitude San Francisco 2018: Preparing for Video Streaming Events at Scale
Altitude San Francisco 2018: Preparing for Video Streaming Events at ScaleAltitude San Francisco 2018: Preparing for Video Streaming Events at Scale
Altitude San Francisco 2018: Preparing for Video Streaming Events at Scale
 
Altitude San Francisco 2018: Building the Souther Hemisphere of the Internet
Altitude San Francisco 2018: Building the Souther Hemisphere of the InternetAltitude San Francisco 2018: Building the Souther Hemisphere of the Internet
Altitude San Francisco 2018: Building the Souther Hemisphere of the Internet
 
Altitude San Francisco 2018: The World Cup Stream
Altitude San Francisco 2018: The World Cup StreamAltitude San Francisco 2018: The World Cup Stream
Altitude San Francisco 2018: The World Cup Stream
 
Altitude San Francisco 2018: We Own Our Destiny
Altitude San Francisco 2018: We Own Our DestinyAltitude San Francisco 2018: We Own Our Destiny
Altitude San Francisco 2018: We Own Our Destiny
 
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...
 
Altitude San Francisco 2018: Moving Off the Monolith: A Seamless Migration
Altitude San Francisco 2018: Moving Off the Monolith: A Seamless MigrationAltitude San Francisco 2018: Moving Off the Monolith: A Seamless Migration
Altitude San Francisco 2018: Moving Off the Monolith: A Seamless Migration
 
Altitude San Francisco 2018: Bringing TLS to GitHub Pages
Altitude San Francisco 2018: Bringing TLS to GitHub PagesAltitude San Francisco 2018: Bringing TLS to GitHub Pages
Altitude San Francisco 2018: Bringing TLS to GitHub Pages
 
Altitude San Francisco 2018: HTTP Invalidation Workshop
Altitude San Francisco 2018: HTTP Invalidation WorkshopAltitude San Francisco 2018: HTTP Invalidation Workshop
Altitude San Francisco 2018: HTTP Invalidation Workshop
 
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and Woe
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and WoeAltitude San Francisco 2018: HTTP/2 Tales: Discovery and Woe
Altitude San Francisco 2018: HTTP/2 Tales: Discovery and Woe
 
Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...
Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...
Altitude San Francisco 2018: How Magento moved to the cloud while maintaining...
 
Altitude San Francisco 2018: Scaling Ethereum to 10B requests per day
Altitude San Francisco 2018: Scaling Ethereum to 10B requests per dayAltitude San Francisco 2018: Scaling Ethereum to 10B requests per day
Altitude San Francisco 2018: Scaling Ethereum to 10B requests per day
 
Altitude San Francisco 2018: Authentication at the Edge
Altitude San Francisco 2018: Authentication at the EdgeAltitude San Francisco 2018: Authentication at the Edge
Altitude San Francisco 2018: Authentication at the Edge
 
Altitude San Francisco 2018: WebAssembly Tools & Applications
Altitude San Francisco 2018: WebAssembly Tools & ApplicationsAltitude San Francisco 2018: WebAssembly Tools & Applications
Altitude San Francisco 2018: WebAssembly Tools & Applications
 
Altitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly WorkshopAltitude San Francisco 2018: Testing with Fastly Workshop
Altitude San Francisco 2018: Testing with Fastly Workshop
 
Altitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORK
Altitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORKAltitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORK
Altitude San Francisco 2018: Fastly Purge Control at the USA TODAY NETWORK
 
Altitude San Francisco 2018: WAF Workshop
Altitude San Francisco 2018: WAF WorkshopAltitude San Francisco 2018: WAF Workshop
Altitude San Francisco 2018: WAF Workshop
 
Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge
 
Altitude San Francisco 2018: Video Workshop Docs
Altitude San Francisco 2018: Video Workshop DocsAltitude San Francisco 2018: Video Workshop Docs
Altitude San Francisco 2018: Video Workshop Docs
 
Altitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the EdgeAltitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the Edge
 

Recently uploaded

办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 

Recently uploaded (20)

办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 

Measuring CDN performance and why you're doing it wrong

  • 1.   Measuring  CDN   Performance     Hooman  Beheshti   VP  Technology  
  • 2. Why  this  matters   •  Performance  is  one  of  the  main  reasons  we  use  a   CDN   •  Measurement  often  used  during  evaluation   phase  to  compare  CDNs   –  Most  of  what  we’ll  talk  about  is  in  this  context   •  Seems  easy,  but  isn’t   •  Heavily  vendor-­‐influenced   –  “Ok  Google:  define  irony!”  
  • 3. Goals   •  What  does  the  measurement  landscape  look  like   •  Share  measurement  experiences   •  Help  guide  towards  good  testing  plan  if/when   you  decide  to  do    this  
  • 5.
  • 6. Delivery:  static/cached  objects   Client   CDN  Node   Origin  
  • 8. What  we’ll  be  focusing  on   •  Only  on  delivery  and  not  all  the  other  features   CDNs  provide   •  How  we  measure   •  Metrics  to  measure   •  What  to  measure   •  Some  gotchas,  misconceptions,  and  common   mistakes  
  • 9. Measurement  Techniques   (how  we  measure)  
  • 10. Measurement  techniques   •  Pretend  Users   –  Synthetic  tests   –  Not  actual  users   •  Real  Users   –  In  the  browser   –  Actual  users  
  • 12. Synthetic  testing   •  Usually  a  large  network  of  test  nodes  all  over   the  globe   •  Highly  scalable,  can  do  lots  of  tests  at  once   •  Many  vendors  that  have  this  model   – Examples:  Catchpoint,  Dynatrace(Gomez),   Keynote,  Pingdom,  etc  
  • 13. Synthetic  testing   •  Built  to  do  full  performance  and  availability  testing   –  Lots  of  “monitors”  –  emulating  what  real  users  do   –  DNS,  Traceroute,  Ping,  Streaming,  Mobile   –  HTTP   •  Object   •  Browser   •  Transactions/Flows     •  Tests  set  up  with  some  frequency  to  repeatedly  test  things   –  Aggregates  reported  
  • 14. Backbone  nodes   •  Test  machines  sitting  in  datacenters  all  around  the  globe   •  Really  good  at:   –  Availability  and  reachability   –  Scale   –  Backend  problems   –  Global  reach   •  Terrible  indicators  of  raw  performance   –  No  latency   –  Infinite  bandwidth  
  • 15. Backbone  nodes   •  Test  machines  sitting  in  datacenters  all  around  the  globe   •  Really  good  at:   –  Availability  and  reachability   –  Scale   –  Backend  problems   –  Global  reach   •  Often  terrible  indicators  of  raw  performance   –  No  latency   –  Infinite  bandwidth  
  • 17. Last  mile  nodes   •  Test  machines  sitting  behind  a  real  home-­‐like   internet  connection   •  Much  better  at  reporting  what  you  can  expect   from  users,  but  sometimes  unreliable   •  Also  not  as  dense  in  deployment  
  • 18. backbone   last  mile  
  • 20. RUM   •  Use  javascript  to  collect  timing  metrics   •  Can  collect  lots  of  things  through  browser   APIs   – Page  metrics,  asset  metrics,  user-­‐defined  metrics  
  • 21. Use  test  assets   •  Use  this  model  to  initiate  tests  in  the  browser   •  Some  vendors:   – Cedexis,  TurboBytes,  CloudHarmony,  more…   – Usually,  this  isn’t  their  business,  but  the  data   drives  their  main  business  objectives   •  You  can  build  this  yourself  too  
  • 22. Use  real  assets  in  the  page   •  Collect  timings  from  actual  objects   –  Resource  timing   •  Vendors   –  SOASTA,  New  Relic,  most  synthetic  vendors   –  Boomerang  (open  source)   –  Google  Analytics  User  Timings  
  • 23. DATA,  DATA,  DATA   •  For  either  RUM  technique,  we  need  A  LOT  of   data   •  Too  much  variance   – Most  vendors  don’t  use  averages   – Medians,  percentiles,  and  histograms  
  • 26. Client   Server   1  x  RTT    
  • 27. Client   Server   DNS   DNS  
  • 28. TCP   Client   Server   DNS   DNS  
  • 29. TCP   Client   Server   DNS   DNS   (TLS)  
  • 30. TCP   Client   Server   DNS   DNS   (TLS)   HTTP  (TTFB)  
  • 31. TCP   Client   Server   DNS   DNS   (TLS)   HTTP  (TTFB)   HTTP  (Download)  
  • 32. DNS   TCP   (TLS)   TTFB   Download  (TTLB-­‐TTFB)   Time  
  • 33. DNS   TCP   (TLS)   TTFB   Download  (TTLB-­‐TTFB)   Time   DNS   RTT  to  DNS  server,  DNS  iterations,  DNS  caching  and    TTLs  
  • 34. DNS   TCP   (TLS)   TTFB   Download  (TTLB-­‐TTFB)   Time   DNS   TCP   RTT  to  DNS  server,  DNS  iterations,  DNS  caching  and    TTLs   RTT  to  cache  server  (CDN  footprint  &  routing  algorithms)  
  • 35. DNS   TCP   (TLS)   TTFB   Download  (TTLB-­‐TTFB)   Time   DNS   TCP   (TLS)   RTT  to  DNS  server,  DNS  iterations,  DNS  caching  and    TTLs   RTT  to  cache  server  (CDN  footprint  &  routing  algorithms)   RTT  to  cache  server  (or  RTTs  depending  on  TLS  False  Start),   efficiency  of  TLS  engine  
  • 36. DNS   TCP   (TLS)   TTFB   Download  (TTLB-­‐TTFB)   Time   DNS   TCP   (TLS)   TTFB   RTT  to  DNS  server,  DNS  iterations,  DNS  caching  and    TTLs   RTT  to  cache  server  (CDN  footprint  &  routing  algorithms)   RTT  to  cache  server  (or  RTTs  depending  on  TLS  False  Start),   efficiency  of  TLS  engine   RTT  to  where  the  object  is  stored  +  storage  efficiency     (different  for  requests  to  origin);  lower  bound  =  network  RTT  
  • 37. DNS   TCP   (TLS)   TTFB   Download  (TTLB-­‐TTFB)   Time   DNS   TCP   (TLS)   TTFB   TTLB-­‐TTFB   RTT  to  DNS  server,  DNS  iterations,  DNS  caching  and    TTLs   RTT  to  cache  server  (CDN  footprint  &  routing  algorithms)   RTT  to  cache  server  (or  RTTs  depending  on  TLS  False  Start),   efficiency  of  TLS  engine   RTT  to  where  the  object  is  stored  +  storage  efficiency     (different  for  requests  to  origin);  lower  bound  =  network  RTT   Bandwidth,  congestion  avoidance  algorithms  (and  RTT!)  
  • 38. Core  object  metrics   •  Not  every  request  experiences  every  metric:   – DNS:  once  per  domain   – TCP/TLS  setup  once  per  connection   – TTFB/Download  for  every  object  (not  already  in   browser  cache)    
  • 41. Mistakes  we  make     (when  evaluating)  
  • 42. CDN   X   vs   CDN   Y  
  • 43. “I’ll  pick  an  image  from  my  home   page,  use  backbone  synthetic   tests  from  all  over  the  world  and   pick  the  CDN  that  has  the  fastest   average  time”   “let’s  test  an  asset  via    RUM  on  a   million  page  views  a  day  and  pick   the  fastest  CDN”   “let’s  run  webpagetest  on  both   CDNs  and  go  with  whichever  has   a  faster  page  load  time”   ~$time curl –v http://…
  • 44. we  measure  the  wrong  thing    
  • 45. Web  application:  objects   •  Your  application  should  determine  what  you  test:   –  Objects  served  from  the  edge   –  Objects  served  from  origin  (through  CDN)     •  If  HTML  is  from  origin  (through  CDN),  we  must   measure  it   –  Essential  to  critical  page  metrics  
  • 47. •  On  any  page   –  DNS  queries  only  happen  a  small   number  of  times   –  6  TCP  connections  per  domain   –  1  TLS  setup  per  connection   –  Many  many  many  HTTP  fetches   •  Core  metrics   –  TTFB   –  Download  (TTLB-­‐TTFB)  if   important  large  objects   –  Should  have  a  good  idea  of  DNS/ TCP/TLS,  but  less  critical  
  • 48. Web  application   •  If  CDN  only  for  static/cacheable  objects:   –  One  or  two  representative  assets     –  TTFB  and  maybe  download  most  important   Client   CDN  Node  
  • 50. Web  application   •  If  CDN  also  for  whole  site  (HTML  going  through  CDN)   –  Sample  of  key  HTML  pages,  delivered  from  origin   –  TTFB  will  show  efficiency  of  routing  (and  connection   management)    to  origin   –  TTLB  will  show  efficiency  of  delivery   Web  Server  Client   CDN  Node  
  • 51. Web  application   •  If  CDN  also  for  whole  site  (HTML  going  through  CDN)   –  Sample  of  key  HTML  pages,  delivered  from  origin   –  TTFB  will  show  efficiency  of  routing  (and  connection   management)    to  origin   –  TTLB  will  show  efficiency  of  delivery   Web  Server  Client   CDN  Node   CDN  Node  
  • 52. we  measure  the  wrong  way  
  • 53. Backbone   Nodes   (For  true  performance  measurements)  
  • 54. %  of  tests   msec   TCP  Connect  Time  Histogram  (BB  nodes)  
  • 55. object  metrics       or     page  metrics  
  • 56.
  • 57.
  • 58. Download:  15Mbps     Upload:  5Mbps     Latency:  10  ms,  25  ms  
  • 59. 10  msec   25  msec  
  • 60. 10  msec   25  msec  
  • 61. onload   Speed  Index   Start  Render   10  msec   25  msec  
  • 62. What  the…???   •  We  always  assume  “all  things  equal”   •  Too  many  factors  affect  page  load  time   –  3rd  parties  (sometimes  varying),  content  form  origin,  layout,  JS   execution,  etc   •  Too  much  variance   Source:  httparchive.org  
  • 63. To  be  clear…   •  Always  use  webpagetest  (or  something  like  it)  to  understand  your   application’s  performance  profile   •  Continue  to  monitor  application  performance,  and  always  spot   check   •  Be  extremely  careful  when  using  it  to  compare  CDN  performance,   it  can  mislead  you   –  If  using  RUM  to  measure  page  metrics,  with  lots  of  data,  things   become  a  little  more  meaningful  (data  volume  handles  variance)  
  • 64. we  overgeneralize     and     draw  the  wrong  conclusions  
  • 66. Cache  hit  ratio:  traditional  calculation   1  -­‐     Requests  to  Origin     Total  Requests  
  • 68. Origin   Cache          
  • 69. TCP   Origin   Cache          
  • 70. HTTP   Origin   Cache          
  • 71. Origin   Cache           HTTP  
  • 72. Origin   Cache           HTTP  
  • 73. Origin   Cache           HTTP  
  • 74. Origin   Cache           HTTP  
  • 75. Origin   Cache           HOT   COLD  
  • 76. Origin   Cache           cache  “hit”  
  • 77. Cache  hit  ratio:  traditional  calculation   1  -­‐     Requests  to  Origin     Total  Requests  
  • 78. Isn’t  this  better?   Hits   Total  Requests   @edge  
  • 79. Isn’t  this  better?   Hits   Hits  +  Misses   @edge  
  • 80. Cache  hit  ratio   vs.  1  -­‐    Requests  to  Origin     Total  Requests   Hits   Hits  +  Misses   @edge  
  • 81. Cache  hit  ratio   vs.  1  -­‐    Requests  to  Origin     Total  Requests   Hits   Hits  +  Misses   @edge   Offload  
  • 82. Cache  hit  ratio   vs.  1  -­‐    Requests  to  Origin     Total  Requests   Hits   Hits  +  Misses   @edge   Offload   Performance  
  • 83. Effect  on  long  tail  content  
  • 84. Effect  on  long  tail  content   (long  tail:  Cacheable  but  seldom  fetched)  
  • 85. Popular   Medium  Tail  (1hr)   Long  tail    (6hr)                  
  • 86. Popular   Medium  Tail  (1hr)   Long  tail    (6hr)                   Connect  (median)   Popular   14msec   1hr  Tail   15msec   6hr  Tail   16msec  
  • 87. Popular   Medium  Tail  (1hr)   Long  tail    (6hr)                   Connect  (median)   Popular   14msec   1hr  Tail   15msec   6hr  Tail   16msec  6,400+  measurements   77,000+  measurements   38,000+  measurements  
  • 88. Popular   Medium  Tail  (1hr)   Long  tail    (6hr)   Connect  (median)   Wait  (median)   Popular   14msec   19msec   1hr  Tail   15msec   26msec   6hr  Tail   16msec   32msec  6,400+  measurements   77,000+  measurements   38,000+  measurements  
  • 89. Popular   Medium  Tail  (1hr)   Long  tail    (6hr)   Isn’t  this  better?  
  • 90. Popular   Medium  Tail  (1hr)   Long  tail    (6hr)  
  • 91. Popular   Medium  Tail  (1hr)   Long  tail    (6hr)  
  • 93. How  much  of  this  really  matter?       (when  trying  to  choose  between  multiple    CDNs)  
  • 94.
  • 95.
  • 96. The  bigger  picture   •  It’s  really  easy  to  lock  in  on  a  metric   •  Performance  absolutely  matters   •  True  performance  isn’t  always  as  easy  to   measure  
  • 97. We  must  ask  questions  …  
  • 98. What’s  the  storage  model  and  how  does   it  affect  long  tail  content?  
  • 99. What  should  I  expect  with     cache  hit  ratios     for  offload  and  performance?  
  • 100. Footprint?     (is  what  I’m  testing  the  same  as  what  I’m  buying?)  
  • 101. HTTP  vs  TLS  footprint?  
  • 102. Can  I  serve  stale  content  if  necessary?   (stale-while-revalidate & stale-if-error)
  • 103. What  if  I  can  cache  something  I  didn’t   think  I  could?  
  • 104. Key  takeaways   •  Everything  is  application-­‐dependent   –  Evaluate  how  your  application  works  and  what  impacts  performance  the   most   •  Don’t  get  locked  into  a  single  number/metric   •  Always  know  your  application  performance  and  bottlenecks   •  Be  mindful  of  the  bigger  picture   •  Don’t  stop  measuring!  
  • 105. Thank  you!   hooman@fastly.com     office  hours  Friday  @lunch