TCP Performance Monitoring

Slides:



Advertisements
Similar presentations
Introduction 2 1: Introduction.
Advertisements

Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Programmable Measurement Architecture for Data Centers Minlan Yu University of Southern California 1.
Restricted Slow-Start for TCP William Allcock 1,2, Sanjay Hegde 3 and Rajkumar Kettimuthu 1,2 1 Argonne National Laboratory 2 The University of Chicago.
Profiling Network Performance in Multi-tier Datacenter Applications Minlan Yu Princeton University 1 Joint work with Albert Greenberg,
Vijay Vasudevan, Amar Phanishayee, Hiral Shah, Elie Krevat David Andersen, Greg Ganger, Garth Gibson, Brian Mueller* Carnegie Mellon University, *Panasas.
Identifying Performance Bottlenecks in CDNs through TCP-Level Monitoring Peng Sun Minlan Yu, Michael J. Freedman, Jennifer Rexford Princeton University.
Profiling Network Performance in Multi-tier Datacenter Applications
Defense: Christopher Francis, Rumou duan Data Center TCP (DCTCP) 1.
Profiling Network Performance in Multi-tier Datacenter Applications Jori Hardman Carly Ho Paper by Minlan Yu, Albert Greenberg, Dave Maltz, Jennifer Rexford,
The Transport Layer Chapter 6. The Transport Service Services Provided to the Upper Layers Transport Service Primitives Berkeley Sockets An Example of.
Computer Networks Transport Layer. Topics F Introduction  F Connection Issues F TCP.
TCP Congestion Control
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks TCP.
Data Center Networks Jennifer Rexford COS 461: Computer Networks Lectures: MW 10-10:50am in Architecture N101
Performance Diagnosis and Improvement in Data Center Networks
Lect3..ppt - 09/12/04 CIS 4100 Systems Performance and Evaluation Lecture 3 by Zornitza Genova Prodanoff.
Advanced Network Architecture Research Group 2001/11/149 th International Conference on Network Protocols Scalable Socket Buffer Tuning for High-Performance.
Experiences in Design and Implementation of a High Performance Transport Protocol Yunhong Gu, Xinwei Hong, and Robert L. Grossman National Center for Data.
TCP Throughput Collapse in Cluster-based Storage Systems
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks TCP.
Networked & Distributed Systems TCP/IP Transport Layer Protocols UDP and TCP University of Glamorgan.
1 Lecture 14 High-speed TCP connections Wraparound Keeping the pipeline full Estimating RTT Fairness of TCP congestion control Internet resource allocation.
Advanced Network Architecture Research Group 2001/11/74 th Asia-Pacific Symposium on Information and Telecommunication Technologies Design and Implementation.
HighSpeed TCP for High Bandwidth-Delay Product Networks Raj Kettimuthu.
1 Evaluating NGI performance Matt Mathis
Computer Networking Lecture 18 – More TCP & Congestion Control.
TCP: Transmission Control Protocol Part II : Protocol Mechanisms Computer Network System Sirak Kaewjamnong Semester 1st, 2004.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
TCP continued. Discussion – TCP Throughput TCP will most likely generate the saw tooth type of traffic. – A rough estimate is that the congestion window.
IT 424 Networks2 IT 424 Networks2 Ack.: Slides are adapted from the slides of the book: “Computer Networking” – J. Kurose, K. Ross Chapter 3: Transport.
Transmission Control Protocol A Reliable, Connection-Oriented, Byte-Stream Service Lab 9.
Sandeep Kakumanu Smita Vemulapalli Gnan
Mohit Aron Peter Druschel Presenter: Christopher Head
Distributed Systems 11. Transport Layer
TCP - Part II.
DMET 602: Networks and Media Lab
Fast Retransmit For sliding windows flow control we waited for a timer to expire before beginning retransmission of a packet TCP uses an additional mechanism.
Chapter 5 TCP Sequence Numbers & TCP Transmission Control
Introduction to Networks
Transport Control Protocol
Fast Pattern-Based Throughput Prediction for TCP Bulk Transfers
Presented by Kristen Carlson Accardi
Transport Protocols over Circuits/VCs
Review: UDP demultiplexing TCP demultiplexing Multiplexing?
Computer Networks Bhushan Trivedi, Director, MCA Programme, at the GLS Institute of Computer Technology, Ahmadabad.
Chapter 3 Part 3 Switching and Bridging
Chapter 5 TCP Transmission Control
TCP Sequence Number Plots
TCP Congestion Control at the Network Edge
Carnegie Mellon University, *Panasas Inc.
The Future of Transport
So far, On the networking side, we looked at mechanisms to links hosts using direct linked networks and then forming a network of these networks. We introduced.
CS Lecture 2 Network Performance
Transport Control Protocol
IT351: Mobile & Wireless Computing
Jiyong Park Seoul National University, Korea
CS640: Introduction to Computer Networks
TCP Congestion Control at the Network Edge
Department of Informatics Networks and Distributed Systems (ND) group
Chapter 3 Part 3 Switching and Bridging
CS4470 Computer Networking Protocols
Advanced Computer Networks
Advanced Computer Networks
Transport Layer: Congestion Control
The Transport Layer Chapter 6.
TCP flow and congestion control
Anant Mudambi, U. Virginia
TCP: Transmission Control Protocol Part II : Protocol Mechanisms
Lecture 6, Computer Networks (198:552)
Presentation transcript:

TCP Performance Monitoring Jennifer Rexford Fall 2016 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks http://www.cs.princeton.edu/courses/archive/fall16/cos561/

Applications Inside Data Centers …. …. …. …. A single application(propagated and aggregated), the same server is shared by many more apps, some are delay sensitive while others have high throughput. All these applications inside data centers are already complicated when things are right, but what if something goes wrong? Aggregator Workers Front end Server

Challenges of Datacenter Diagnosis Large complex applications Hundreds of application components Tens of thousands of servers New performance problems Update code to add features or fix bugs Change components while app is in operation Old performance problems (Human factors) Developers may not understand network well Small packets, delayed ACK, etc. We have many low-level protocols such as….that is a mystery to developers without a networking background, but these protocols may have significant performance impact. It could be a disaster for a database expert to work with a TCP stack - slide 34: audience probably won't know what "Nagle's algorithm" and "delayed ACK" are. you can finesse this out loud, and say that networking protocols have many low-level mechanisms (and view these as examples you don't expect the audience to know). in practice, I think Microsoft doesn't  really "hot swap" in the new code, but rather brings up new images for a  service and gradually phase out the old ones your point is more that change  in constant. Just stress the point about constant influx of new developers out loud. silly window syndrome

Diagnosis in Data Centers Packet trace: Filter out trace for long delay req. App logs: #Reqs/sec Response time 1% req.>200ms delay Host App Too expensive Application- specific Packet sniffer OS Google and microsoft 100K$ a few monitoring machines monitor two racks of servers SNAP: Diagnose net-app interactions Switch logs: #bytes/pkts per minute Generic, fine-grained, and lightweight Too coarse-grained

Collect Data in TCP Stack TCP understands net-app interactions Flow control: How much data apps want to read/write Congestion control: Network delay and congestion Collect TCP-level statistics Defined by RFC 4898 Already exists in today’s Linux and Windows OSes

TCP-level Statistics Cumulative counters Instantaneous snapshots Packet loss: #FastRetrans, #Timeout RTT estimation: #SampleRTT, #SumRTT Receiver: RwinLimitTime Calculate the difference between two polls Instantaneous snapshots #Bytes in the send buffer Congestion window size, receiver window size Representative snapshots based on Poisson sampling Two types: elevate the difference to the beginning of the patter. Some are easier to deal with - cumulative, some are hard - requires being lucky enough to sample at the instant something interesting happens Counters will catch every event that happens even when the polls are too large Sampling periodically may miss some value, so we choose Poisson which can guarantee that we can get a statistically accurate overview of these values. Poisson sampling can make sure the distribution of sampling data is meaningful … Example variables, there are many others… PASTA, Independent of underlying statistical distribution Data are used for classify and to show details for people to … Why Poisson sampling? – to get meaningful values…

Life of Data Transfer Application generates the data Sender App No network problem Copy data to send buffer Send buffer not large enough TCP sends data to the network Fast retransmission Timeout Receiver receives the data and ACK Not reading fast enough (CPU, disk, etc.) Not ACKing fast enough (Delayed ACK) Sender App Send Buffer Network Here we show a simple example on the basic data transfer stages that can help illustrate the problems that come from different stages. this simple example useful to explain where performance impairments happen. make clear that this is the simple life cycle shown so you can explain the very useful taxonomy that we came up with. Receiver

Cross-connection correlation Performance Classifier SNAP Architecture Management System Topology, routing Conn  proc/app At each host for every connection Cross-connection correlation Collect data Performance Classifier Shared resource: host, link, or switch Overview to give sense of what SNAP is Tuning polling rate to reduce overhead Input Topology, routing information Mapping from connections to processes/apps Sharing the same switch/link, app code Offending app, host, link, or switch

Pinpoint Problems via Correlation Correlation over shared switch/link/host Packet loss for all the connections going through one switch/host Pinpoint the problematic switch

Pinpoint Problems via Correlation Correlation over application Same application has problem on all machines Report aggregated application behavior

Reducing SNAP Overhead Data volume: 120 Bytes per connection per poll CPU overhead: 5% for polling 1K connections with 500 ms interval Increases with #connections and polling freq. Solution: Adaptive tuning of polling frequency Reduce polling frequency to stay within a target CPU Devote more polling to more problematic connections E.g., 35% for polling 5K connections with 50 ms interval 5% for polling 1K connections with 500 ms interval

Characterizing Performance Limitations #Apps that are limited for > 50% of the time Send Buffer Send buffer not large enough 1 App Network Fast retransmission Timeout 6 Apps 6 apps self inflicted packet loss" "incast Life of transfer: be sure to talk about ack One connection is always limited by one component, it’s good for the network, if it’s limited by apps Nagle and delayed ack… : small data which trigger Nagle’s algo. 8 Apps Not reading fast enough (CPU, disk) Not ACKing fast enough (Delayed ACK) Receiver 144 Apps

Three Example Problems Delayed ACK affects delay sensitive apps Congestion window allows sudden burst Significant timeouts for low-rate flows

Problem 1: Delayed ACK Delayed ACK affected many delay sensitive apps even #pkts per record  1,000 records/sec odd #pkts per record  5 records/sec Delayed ACK was used to reduce bandwidth usage and server interrupts A B Data ACK every other packet ACK …. Proposed solutions: Delayed ACK should be disabled in data centers Data point out 1000s txn/s versus 5, based on parity of number of packets in request. Delayed ack disable cost (at least mention) configuration-file distribution service 1M connections… - clarify up front that Delayed ACK is a mechanism in TCP, not something added by the developers or operators in the data center. 200 ms ACK

Problem 2: Sudden Bursts Increase congestion window to reduce delay To send 64 KB data with 1 RTT Developers intentionally keep congestion window large Disable slow start restart in TCP Drops after an idle time Window At any time, cwd is large enough …. But cwd gets reduced … Aggregator distributing requests t

Slow Start Restart SNAP diagnosis Proposed solutions Significant packet loss Congestion window is too large after an idle period Proposed solutions Change apps to send less data during congestion New transport protocols that consider both congestion and delay

Problem 3: Timeouts for Low-rate Flows SNAP diagnosis More fast retranmissions for high-rate flows (1-10MB/s) More timeouts with low-rate flows (10-100KB/s) Proposed solutions Reduce timeout time in TCP stack New ways to handle packet loss for small flows Problem Low-rate flows are not the cause of congestion But suffer more from congestion

Discussion What to do if the monitoring is too expensive? Sample connections? Selective logging? Local data aggregation? http://www.cs.princeton.edu/~jrex/papers/hone-jnsm.pdf What to do in a public cloud, where each tenant runs its own virtual machine? No access to the TCP state variables Uncertainty about the chosen variant of TCP http://rinc.cs.princeton.edu/ What to do in the wide area, between a server and a (remote) client? http://www.cs.princeton.edu/~jrex/papers/wmust11.pdf