can we containerize internet measurements
play

Can We Containerize Internet Measurements? Chris Misa (University - PowerPoint PPT Presentation

Can We Containerize Internet Measurements? Chris Misa (University of Oregon) Sudarsun Kannan (Rutgers University) Ramakrishnan Durairajan (University of Oregon) cmisa@cs.uoregon.edu 1 Outline Containerized measurement issues Proposed


  1. Can We Containerize Internet Measurements? Chris Misa (University of Oregon) Sudarsun Kannan (Rutgers University) Ramakrishnan Durairajan (University of Oregon) cmisa@cs.uoregon.edu 1

  2. Outline • Containerized measurement issues • Proposed solutjon: MACE • Evaluatjon of MACE cmisa@cs.uoregon.edu 2

  3. Containers • Lightweight virtualizatjon mechanism – Package, deploy, isolate cmisa@cs.uoregon.edu 3

  4. Containers • Lightweight virtualizatjon mechanism – Package, deploy, isolate • Based on recent developments in Linux – Namespaces, cgroups cmisa@cs.uoregon.edu 4

  5. Containers • Lightweight virtualizatjon mechanism – Package, deploy, isolate • Based on recent developments in Linux – Namespaces, cgroups • Rapidly replacing VMs – Smaller, faster cmisa@cs.uoregon.edu 5

  6. Motivation • Streamline experiments – Package scripts, tools, libraries – Consistent interface cmisa@cs.uoregon.edu 6

  7. Motivation • Streamline experiments – Package scripts, tools, libraries – Consistent interface • Expose new, cloud-natjve vantage points – Azure – AWS – GCP – etc. cmisa@cs.uoregon.edu 7

  8. Motivation • Streamline experiments – Package scripts, tools, libraries – Consistent interface • Expose new, cloud-natjve vantage points – Azure – AWS – GCP – etc. • Less CPU and memory overheads than VMs [1] PlanetLab since 2012 [0] cmisa@cs.uoregon.edu 8

  9. Sure we can! cmisa@cs.uoregon.edu 9

  10. Sure we can! Why not? cmisa@cs.uoregon.edu 10

  11. Network Isolation ● Extra latency [2] – ~50μs in restjng system cmisa@cs.uoregon.edu 11

  12. Network Isolation ● Extra latency [2] – ~50μs in restjng system ● Co-located containers – Up to 300μs depending on traffjc cmisa@cs.uoregon.edu 12

  13. Network Isolation ● Extra latency [2] – ~50μs in restjng system ● Co-located containers – Up to 300μs depending on traffjc ● Biased measurement results – Non-constant latency overheads cmisa@cs.uoregon.edu 13

  14. Network Isolation ● Extra latency [2] – ~50μs in restjng system ● Co-located containers – Up to 300μs depending on traffjc ● Biased measurement results – Non-constant latency overheads ● Slim [3], FreeFlow [4] don’t help – Flow-based, RDMA cmisa@cs.uoregon.edu 14

  15. Importance of Latency • An error of 300μs translates to – 90km at the speed of light [6, 7] – $1.2 million for online trading [5] Source: Google cmisa@cs.uoregon.edu 15

  16. Importance of Latency • An error of 300μs translates to – 90km at the speed of light [6, 7] – $1.2 million for online trading [5] • Hard to isolate latencies – OS, virtualizatjon, physical Source: Google cmisa@cs.uoregon.edu 16

  17. How to account for latency in a running container system? cmisa@cs.uoregon.edu 17

  18. How to account for latency in a running container system? MACE: Measure the Added Container Expense cmisa@cs.uoregon.edu 18

  19. Outline • Containerized measurement issues • Proposed solutjon: MACE • Evaluatjon of MACE cmisa@cs.uoregon.edu 19

  20. MACE: Goals Host Container • Packet-level latencies – Ingress and egress eth0: 172.17.0.2 – High accuracy veth ? docker0 eth0: 198.168.0.2 cmisa@cs.uoregon.edu 20

  21. MACE: Goals Host Container • Packet-level latencies – Ingress and egress eth0: 172.17.0.2 – High accuracy veth • Minimal impact on network performance ? docker0 eth0: 198.168.0.2 cmisa@cs.uoregon.edu 21

  22. MACE: Goals Host Container • Packet-level latencies – Ingress and egress eth0: 172.17.0.2 – High accuracy veth • Minimal impact on network performance ? • Consistent, container-friendly interface docker0 eth0: 198.168.0.2 cmisa@cs.uoregon.edu 22

  23. MACE: How? • Linux Kernel Tracepoints [9] – Hooks into kernel – Net device and system call subsytems Source: http://www.brendangregg.com cmisa@cs.uoregon.edu 23

  24. MACE: How? • Linux Kernel Tracepoints [9] – Hooks into kernel – Net device and system call subsytems • Existjng tracers – Large perturbatjon Source: http://www.brendangregg.com cmisa@cs.uoregon.edu 24

  25. MACE: How? • Linux Kernel Tracepoints [9] – Hooks into kernel – Net device and system call subsytems • Existjng tracers – Large perturbatjon • Kernel module – For container hosts Source: http://www.brendangregg.com – Report to containers cmisa@cs.uoregon.edu 25

  26. MACE: Design ● Filter trace events – Interface – Namespace cmisa@cs.uoregon.edu 26

  27. MACE: Design ● Filter trace events – Interface – Namespace ● Correlate events in hash tables – Ingress – Egress cmisa@cs.uoregon.edu 27

  28. MACE: Design ● Filter trace events – Interface – Namespace ● Correlate events in hash tables – Ingress – Egress ● Maintain list of latencies – Report via device fjle cmisa@cs.uoregon.edu 28

  29. MACE: Implementation ● High accuracy Open source at: github.com/chris-misa/mace – Read tsc for tjming cmisa@cs.uoregon.edu 29

  30. MACE: Implementation ● High accuracy Open source at: github.com/chris-misa/mace – Read tsc for tjming ● Low perturbatjon – Only lock hash buckets – Atomic types for ring bufger cmisa@cs.uoregon.edu 30

  31. MACE: Implementation ● High accuracy Open source at: github.com/chris-misa/mace – Read tsc for tjming ● Low perturbatjon – Only lock hash buckets – Atomic types for ring bufger ● Consistent API – Interface is namespace-aware – Allow and enable per container cmisa@cs.uoregon.edu 31

  32. MACE: Interface ● Select the container’s namespace: # echo 1 > sys/class/mace/on cmisa@cs.uoregon.edu 32

  33. MACE: Interface ● Select the container’s namespace: # echo 1 > sys/class/mace/on ● Execute measurement: # ping -c 10 google.com cmisa@cs.uoregon.edu 33

  34. MACE: Interface ● Select the container’s namespace: # echo 1 > sys/class/mace/on ● Execute measurement: # ping -c 10 google.com ● Collect latencies: # cat dev / mace [1552589043.315681] (1) egress: 80932 [1552589043.315937] (1) ingress: 46208 [1552589043.316012] (2) egress: 13699 . . . cmisa@cs.uoregon.edu 34

  35. How do we know those numbers are correct? cmisa@cs.uoregon.edu 35

  36. Outline • Containerized measurement issues • Proposed solutjon: MACE • Evaluatjon of MACE cmisa@cs.uoregon.edu 36

  37. Evaluation: Methodology • No direct method cmisa@cs.uoregon.edu 37

  38. Evaluation: Methodology • No direct method Host Target • Use difgerence in RTT Container cmisa@cs.uoregon.edu 38

  39. Evaluation: Methodology • No direct method Host Target (1) • Use difgerence in RTT Container (1) RTT from container cmisa@cs.uoregon.edu 39

  40. Evaluation: Methodology • No direct method Host Target (1) • Use difgerence in RTT Container (2) (1) RTT from container (2) Latency overheads from MACE cmisa@cs.uoregon.edu 40

  41. Evaluation: Methodology • No direct method Host Target (1) • Use difgerence in RTT Container (2) (3) (1) RTT from container (2) Latency overheads from MACE (3) ‘corrected’ RTT = (1) minus (2) cmisa@cs.uoregon.edu 41

  42. Evaluation: Methodology • No direct method Host Target (1) • Use difgerence in RTT Container (2) (3) (1) RTT from container (2) Latency overheads from MACE (4) (3) ‘corrected’ RTT = (1) minus (2) Ground-truth hardware RTT (4) Compare with RTT measured from hardware cmisa@cs.uoregon.edu 42

  43. Evaluation: Setting • Ping across single physical link – Minimize network latency cmisa@cs.uoregon.edu 43

  44. Evaluation: Setting • Ping across single physical link – Minimize network latency • Add co-located containers – Flood ping – Worst-case traffjc settjng cmisa@cs.uoregon.edu 44

  45. Evaluation: Setting • Ping across single physical link – Minimize network latency • Add co-located containers – Flood ping – Worst-case traffjc settjng • Run on Cloudlab [10] – Some RTT noise from experiment network cmisa@cs.uoregon.edu 45

  46. Results: RTT Bias ● Reported RTT - actual RTT – ‘raw’ container (blue) – ‘corrected’ container (black) cmisa@cs.uoregon.edu 46

  47. Results: RTT Bias ● Reported RTT - actual RTT – ‘raw’ container (blue) – ‘corrected’ container (black) ● MACE-corrected RTT is within 20μs in worst case cmisa@cs.uoregon.edu 47

  48. Results: RTT Bias ● Reported RTT - actual RTT – ‘raw’ container (blue) – ‘corrected’ container (black) ● MACE-corrected RTT is within 20μs in worst case ● Traffjc impacts all sofuware RTTs – Up to 100 μs cmisa@cs.uoregon.edu 48

  49. Results: Coverage ● Latency reports / packets (%) cmisa@cs.uoregon.edu 49

  50. Results: Coverage ● Latency reports / packets (%) ● Decrease due to collisions in hash tables cmisa@cs.uoregon.edu 50

  51. Results: Coverage ● Latency reports / packets (%) ● Decrease due to collisions in hash tables ● Increased table size can improve coverage to 100% cmisa@cs.uoregon.edu 51

  52. Results: Perturbation ● Instrumented RTT minus non-instrumented RTT – MACE (black) – Ftrace (blue) cmisa@cs.uoregon.edu 52

  53. Results: Perturbation ● Instrumented RTT minus non-instrumented RTT – MACE (black) – Ftrace (blue) ● MACE scales well as traffjc increases cmisa@cs.uoregon.edu 53

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend