End-to-End Performance Analytics For Mobile Apps Lenin Ravindranath, Jitu Padhye, Ratul Mahajan Microsoft Research 1.

Slides:



Advertisements
Similar presentations
BreadCrumbs: Forecasting Mobile Connectivity Anthony Nicholson and Brian Noble University of Michigan Presented by: Scott Winkleman.
Advertisements

Monitor and manage servers 30+ Azure Hosted Services 10 global data center facilities & 6 domains 110+ internet web sites & 6,900+ databases.
My first computer: The Apple ][ It wanted to be programmed.
Dave Bradley Rick Harper Steve Hunter 4/28/2003 CoolRunnings.
Trace Analysis Chunxu Tang. The Mystery Machine: End-to-end performance analysis of large-scale Internet services.
AppInsight: Mobile App Performance Monitoring in the Wild
FindAll: A Local Search Engine for Mobile Phones Aruna Balasubramanian University of Washington.
VanarSena: Automated App Testing. App Testing Test the app for – performance problems – crashes Testing app in the cloud – Upload app to a service – App.
Automatic and Scalable Fault Detection for Mobile Applications Lenin Ravindranath, Suman Nath, Jitu Padhye, Hari Balakrishnan.
ASP.NET (Active Server Page) SNU OOPSLA Lab. October 2005.
1 Chapter 12 Working With Access 2000 on the Internet.
XP Browser and Basics1. XP Browser and Basics2 Learn about Web browser software and Web pages The Web is a collection of files that reside.
INTERNET DATABASE Chapter 9. u Basics of Internet, Web, HTTP, HTML, URLs. u Advantages and disadvantages of Web as a database platform. u Approaches for.
INTERNET DATABASE. Internet and E-commerce Internet – a worldwide collection of interconnected computer network Internet – a worldwide collection of interconnected.
Loupe /loop/ noun a magnifying glass used by jewelers to reveal flaws in gems. a logging and error management tool used by.NET teams to reveal flaws in.
What Can You do With BTM? Business Transaction Management touches the following disciplines:  Performance Management  Application Management  Capacity.
Timecard: Controlling User-Perceived Delays in Server-Based Mobile Applications Lenin Ravindranath, Jitu Padhye, Ratul Mahajan, Hari Balakrishnan.
WebQuilt and Mobile Devices: A Web Usability Testing and Analysis Tool for the Mobile Internet Tara Matthews Seattle University April 5, 2001 Faculty Mentor:
Presented by Tao HUANG Lingzhi XU. Context Mobile devices need exploit variety of connectivity options as they travel. Operating systems manage wireless.
Client/Server Software Architectures Yonglei Tao.
Christopher M. Pascucci Basic Structural Concepts of.NET Browser – Server Interaction.
Week #10 Objectives: Remote Access and Mobile Computing Configure Mobile Computer and Device Settings Configure Remote Desktop and Remote Assistance for.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
 Zhichun Li  The Robust and Secure Systems group at NEC Research Labs  Northwestern University  Tsinghua University 2.
Building Data Driven Applications Using WinRT and XAML Sergey Barskiy, Magenic Microsoft MVP – Data Platform Principal Consultant Level: Intermediate.
Monitoring Latency Sensitive Enterprise Applications on the Cloud Shankar Narayanan Ashiwan Sivakumar.
Eat all you can in an all-you-can-eat buffet: A case for aggressive resource usage Ratul Mahajan Jitu Padhye, Ramya Raghavendra, Brian Zill Microsoft Research.
Randy Pagels Sr. Developer Technology Specialist DX Team (Developer Experience and Evangelism) Application Insights Availability, Performance and Usage.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Computer Emergency Notification System (CENS)
Procrastinator: Pacing Mobile Apps’ Usage of the Network mobisys 2014.
Timecard: Controlling User-Perceived Delays in Server-Based Mobile Applications Lenin Ravindranath, Jitu Padhye, Ratul Mahajan, Hari Balakrishnan.
Christopher M. Pascucci Basic Structural Concepts of.NET Managing State & Scope.
® IBM Software Group © 2007 IBM Corporation Best Practices for Session Management
Developer TECH REFRESH 15 Junho 2015 #pttechrefres h Understand your end-users and your app with Application Insights.
AppInsight: Mobile App Performance Monitoring In The Wild Lenin Ravindranath, Jitu Padhye, Sharad Agarwal, Ratul Mahajan, Ian Obermiller, Shahin Shayandeh.
What's New in Kinetic Calendar 2.0 Jack Boespflug Kinetic Data.
MBL401.Net Compact Framework: Data Access Best Practices Paul Foster Mobile solutions architect.
ASP.Net, Web Forms and Web Controls 1 Outline Session Tracking Cookies Session Tracking with HttpSessionState.
ASP.NET (Active Server Page) SNU OOPSLA Lab. October 2005.
FCM Workflow using GCM.
Improving and Controlling User-Perceived Delays in Mobile Apps Lenin Ravindranath By the time it loads, the church service is over. Too slow!!! Slow responsiveness,
Randy Pagels Sr. Developer Technology Specialist DX Team (Developer Experience and Evangelism) Application Insights Availability, Performance and Usage.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Thread basics. A computer process Every time a program is executed a process is created It is managed via a data structure that keeps all things memory.
1 State and Session Management HTTP is a stateless protocol – it has no memory of prior connections and cannot distinguish one request from another. The.
Emir Halepovic, Jeffrey Pang, Oliver Spatscheck AT&T Labs - Research
Improving and Controlling User-Perceived Delays in Mobile Apps Lenin Ravindranath By the time it loads, the church service is over. Too slow!!! Slow responsiveness,
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Web Technologies Lecture 6 State preservation. Motivation How to keep user data while navigating on a website? – Authenticate only once – Store wish list.
DEV414 Black-belt ASP.NET Tips And Tricks For Your ASP.NET Applications Rob Howard Program Manager Web Platform and Tools Team.
Module 14: Advanced Topics and Troubleshooting. Microsoft ® Windows ® Small Business Server (SBS) 2008 Management Console (Advanced Mode) Managing Windows.
Session Objectives And Takeaways Agenda Monitor and manage servers 30+ Azure Hosted Services 10 global data center facilities & 6 domains 110+
Exploring Mobile Device Networking Lesson 4. Exam Objective Matrix Skills/ConceptsMTA Exam Objectives Understanding Networking for Mobile Devices Network.
A Software Energy Analysis Method using Executable UML for Smartphones Kenji Hisazumi System LSI Research Center Kyushu University.
111 State Management Beginning ASP.NET in C# and VB Chapter 4 Pages
SOURCE:2014 IEEE 17TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE AND ENGINEERING AUTHER: MINGLIU LIU, DESHI LI, HAILI MAO SPEAKER: JIAN-MING HONG.
The Holmes Platform and Applications
Xamarin Development with
Open Data-Kit Sensors.
Section 13 - Integrating with Third Party Tools
Information Technology Deanship
Jon Galloway | Tech Evangelist Christopher Harrison | Head Geek
AppInsight: Mobile App Performance Monitoring in the Wild
WEB API.
PredictRemainingTime
CS323 Android Topics Network Basics for an Android App
Network Controllable MP3 Player
What’s Happening with my App, Application Insights?
Presentation transcript:

End-to-End Performance Analytics For Mobile Apps Lenin Ravindranath, Jitu Padhye, Ratul Mahajan Microsoft Research 1

“Slower than a snail.” “Slow and unresponsive like mud” “Consistently 3 seconds behind where I touch.” “So slow. Did an intern write this app??” “Very very slow compared to even browsing web.” “Sluggish and freezes my HTC phone.” Apps are Slow 2

Cloud Services Mobile Apps Most Mobile Apps talk to the Cloud 3

Cloud Service Location Restaurants 4

AppInsight App Instrumented Instrumenter ClickHandler() { [Instrument] LocationStart(LocationCallback); } LocationCallback(location) { [Instrument] url = GetRequestUrl(location); [Instrument] WebRequest(url, WebResponseCallback); } WebResponseCallback(data) { [Instrument] list = ParseData(data); [Instrument] UIDispatch(Display, list); } Display(list) { [Instrument] UIListBox.DataContext = list; } Automatic Instrumentation 5

AppInsight User click Web RequestWeb Response Web Request delay User Perceived Delay GPS delay Parsing and Rendering delay 6

AppInsight User click Web RequestWeb Response User Perceived Delay Where is the bottleneck? Network? Server? DB? Uplink? Downlink? 7

End-to-End Insight User click Web RequestWeb Response User Perceived Delay Server Uplink delay Downlink delay Server delay Query Processing delay DB GPS delay Parsing and Rendering delay 8

EndInsight Joint App and Server Instrumentation – Windows Phone Apps, ASP.NET Services – Automatic Instrumentation – Zero developer effort – Binary Instrumentation Readily deployable – No changes to the OS, runtime or platform Low overhead 9

App App Instrumenter Instrumented App Service Instrumenter Service Instrumented Service Developer Cloud App Store Analysis Server Developer Feedback Traces Downloads 10

App Instrumentation User click Web RequestWeb Response Web Request delay GPS delay Parsing and Rendering delay Using AppInsight 11

AppInsight Recap Track User Transactions – From user click to UI rendering Across asynchronous thread boundaries Automatically track – UI manipulation – Threads, asynchronous calls – Web calls, Sensor APIs – UI update (dispatcher events) User request UI Update UI Thread Background thread GPS fix Callback UI dispatch Background thread Web Request Response Callback App GPS Start 12

Server Instrumentation Automatic Instrumentation of.NET binaries Azure services – Web APIs, ASPX pages, MVC, WCF Automatically track – Request-Response entry points – DB queries – Network calls Across asynchronous boundaries – Similar to app instrumentation class AroundMeController: ApiController { public Result Get(type, location) { [Instrument] return GetList(type, location); [Instrument] } public Result GetList(type, location) { [Instrument] result = DBQuery(type, location); [Instrument] return result; } 13

Server Instrumentation Server delay Query Processing delay DB Request Response Request Processing Delay 14

Putting them together? Server delay Query Processing delay DB Request Response Web RequestWeb Response App Performance Server Performance 15

Matching App and Server Traces Pass a Unique Id from App to Server Add a new HTTP header in web requests – x-EndInsight-Id App Instrumentation – Instrument HTTP request calls – Generate unique Id when app makes a web request – Add x-EndInsight-Id header in web requests Server Instrumentation – Log the unique id and remove the extra header at the request entry point 16

Matching App and Server Traces User click Web RequestWeb Response Server DB Add header [x-EndInsight-Id] = “59bc73e a7-41ac86c6c039” Log and Remove header [x-EndInsight-Id] 17

DB Request Response Web RequestWeb Response Finding Network Delays Server Request Processing Delay App Web Request Delay Network Delay = [App Web Request Delay] – [Server Request Processing Delay] 18

Separating Uplink and Downlink Delays Server Uplink delay Downlink delay DB Requires knowing the clock offset and drift between Client and Server Different Clocks Timestamp 19

Finding Clock Offset and Drift NTP-like Technique Probes from client timestamped by the server Timestamp t s Timestamp t e Timestamp s Clock Offset = s – ((t s + t e ) / 2) Clock Drift = Slope of linear regression of many such probes More probes, better estimate 20

Automatic Instrumentation of App – To send periodic probes to server Automatic Instrumentation of Server – Open up API to timestamp probes Probing Efficient technique for probing – Aware of the radio state and traffic – Minimal extra delays – Energy efficient 21

Network Delays Uplink – DNS – Connection setup Downlink Analysis App Delays App processing Sensor processing Parsing/Rendering Radio wakeup Disk access Server Delays Server Processing Query Processing Automatic analysis of end-to-end transaction delays 22

Critical Path Analysis 23

Group similar transactions Outliers – Points to corner cases Highlight common critical paths – Focus development effort Root causes of Performance Variability – Highlight factors affecting performance Aggregate Analysis 24

Web based Interface Developer Feedback 25

Compute Network Memory Battery low 2% 4% <0.1% Impact on app and server performance is minimal Low resource consumption EndInsight Overhead 26

Timecard: Controlling End-to-End Delays 27

Servers Control Variability in Response Times Request Response Fixed deadlines Trade-off quality for response time – More time to compute, better quality results – Flexible Services Deadline Server processing 28

The elephant is outside the room Request Response Server processing 29

The elephant is outside the room User click Server processing App Server Request Response UplinkDownlink 30

Unaware of end-to-end delays Clients with non-trivial external delays – Poor end-to-end response times Client with minimal external delays – Do not produce the best quality result Could adapt differently for different users Servers have no visibility into delays outside 31

Timecard GetElapsedTime(); PredictDownstreamTime ( responseSize ); Time elapsed since user request Predicted downlink + app processing delay App Server 32

Timecard App Server Desired end-to-end delay App GetElapsedTime(); PredictDownstreamTime ( responseSize ); Adapt Processing Time 33

Timecard App Server Desired end-to-end delay App GetElapsedTime(); PredictDownstreamTime ( responseSize ); Adapt Response 34

Timecard App Server Desired end-to-end delay App GetElapsedTime(); PredictDownstreamTime ( responseSize ); 35

Online Transaction Tracking Time Synchronization Downstream Delay Predictor – Downlink delay – App processing delay Timecard 36

Timecard Implementation App Server Transaction Tracking Transaction Tracking Transaction Tracking Transaction Tracking Logging Predictor Time Sync Data Collection Automatic Instrumentation WP Apps ASP.NET services APIs 37