Vasily Tarasov 5 April 2017 Challenges in Tracing

Slides:



Advertisements
Similar presentations
File and I/O system calls int open(const char* path, int flags, mode_t modes) int creat(const char *path, mode_t mode) ssize_t read(int fd, void *buf,
Advertisements

LECTURE 1 CMSC 201. Overview Goal: Problem solving and algorithm development. Learn to program in Python. Algorithm - a set of unambiguous and ordered.
Engineering Problem Solving With C++ An Object Based Approach Fundamental Concepts Chapter 1 Engineering Problem Solving.
1. 2 FUNCTION INLINE FUNCTION DIFFERENCE BETWEEN FUNCTION AND INLINE FUNCTION CONCLUSION 3.
Stream Handling Streams - means flow of data to and from program variables. - We declare the variables in our C++ for holding data temporarily in the memory.
Modular Programming Chapter Value and Reference Parameters t Function declaration: void computesumave(float num1, float num2, float& sum, float&
Qing Cao, Tarek Abdelzaher(UIUC), John Stankovic, Kamin Whitehouse (UVA), Liqian Luo (MSR)
Modular Programming Chapter Value and Reference Parameters computeSumAve (x, y, sum, mean) ACTUALFORMAL xnum1(input) ynum2(input) sumsum(output)
SEARCHING (Linear/Binary). Searching Algorithms  method of locating a specific item of information in a larger collection of data.  two popular search.
Current Assignments Homework 3 is due tonight. Iteration and basic functions. Exam 1 on Monday.
An Introduction to Programming with C++ Sixth Edition Chapter 14 Sequential Access Files.
Computer Programming TCP1224 Chapter 13 Sequential File Access.
Tracing through E01, question 9 – step 1 // p02.cc P. Conrad, for CISC181 07S // Exam question for E01 #include using namespace std; void mysteryFunction(int.
1 Chapter 2 C++ Syntax and Semantics, and the Program Development Process.
Chapter 3 Functions. 2 Overview u 3.2 Using C++ functions  Passing arguments  Header files & libraries u Writing C++ functions  Prototype  Definition.
Loops and Files. 5.1 The Increment and Decrement Operators.
CSE 1341 Honors Note Set 2 1. Overview  Java vs. C++  Functions in C++  First Programming Packet  Development Environment 2.
Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software Paper by: James Newsome and Dawn Song.
1 CSC 222: Computer Programming II Spring 2004 Stacks and recursion  stack ADT  push, pop, top, empty, size  vector-based implementation, library 
Chapter Looping 5. The Increment and Decrement Operators 5.1.
Chapter Looping 5. The Increment and Decrement Operators 5.1.
 2003 Prentice Hall, Inc. All rights reserved Basics of a Typical C++ Environment C++ systems –Program-development environment –Language –C++
1 Structure of Simple C++ Program Chapter 1 09/09/13.
CS Class 04 Topics  Selection statement – IF  Expressions  More practice writing simple C++ programs Announcements  Read pages for next.
LIOProf: Exposing Lustre File System Behavior for I/O Middleware
CHAPTER 18 C – C++ Section 1: Exceptions. Error Handling with Exceptions Forces you to defend yourself Separates error handling code from the source.
Beyond Application Profiling to System Aware Analysis Elena Laskavaia, QNX Bill Graham, QNX.
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
Examples (D. Schmidt et al)
Topic Pre-processor cout To output a message.
Chapter 6 CS 3370 – C++ Functions.
Engineering Problem Solving With C An Object Based Approach
Chapter 1.2 Introduction to C++ Programming
Chapter 2: Introduction to C++
Completing the Problem-Solving Process
Chapter 6: Modular Programming
Recursion Chapter 12.
Dr. Bernard Chen Ph.D. University of Central Arkansas
Why exception handling in C++?
What is a File? A file is a collection on information, usually stored on a computer’s disk. Information can be saved to files and then later reused.
School of EECS, Peking University
The Selection Structure
Chapter 5 Functions.
Chapter 5: Loops and Files.
CSCI 161: Introduction to Programming
Chapter 5: Looping Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
User-defined Functions
Chapter 8: Introduction to High-Level Language Programming
Operation System Program 4
Random Number Generation
C++ fundamentals Lecture 1, Chapter 2 – pp /22/2018 Y K Choi.
Today in CS161 Week #3 Learn about… Writing our First Program
Chapter 5 Function Basics
PerfView Measure and Improve Your App’s Performance for Free
Functions A function is a “pre-packaged” block of code written to perform a well-defined task Why? Code sharing and reusability Reduces errors Write and.
User-defined Functions
Starting Out with C++: From Control Structures through Objects
Pointers & Functions.
Tools.
Lab 1 Introduction to C++.
If Statements.
Looping III (do … while statement)
Tools.
Programs written in C and C++ can run on many different computers
Fundamental Programming
Capitolo 1 – Introduction C++ Programming
Pointers & Functions.
COMS 261 Computer Science I
Programming Strings.
Chapter 6 – Queues and Deques
Presentation transcript:

Vasily Tarasov 5 April 2017 Challenges in Tracing - Introduce: VT, IBM, Research division, at Almaden, and I

Outline Tracing in Spectrum Scale High-level design Stats & challenges FlexTrace TraceAnz Say that I did not implement it. Jim Wyllei implemented most. Marc Vef. Acknowledgement: Marc Vef from University of Mainz

Traces Execution Tracepoints Strategically placed in the code Fasd#include <iostream> using namespace std; void Store(){ cout << "The Item store is not finished yet\n" << endl; int Mainmenu(); Mainmenu(); } void Character(){ int PlayerHp, PlayerStr, PlayerMana; cout << "Your character has:\n\n"; cout << PlayerHp << " Health" << endl; cout << PlayerStr << " Strength" << endl; cout << PlayerMana << " Mana" << endl; cout << endl; void Inventory(){ cout << "Your inventory contains:\n" << endl; void Wilderness(){ cout << "You search the Jungle and find:\n" << endl; string Creatures[10]; Creatures[0] = "1"; Creatures[1] = "2"; Creatures[2] = "3"; Creatures[3] = "4"; cout << Creatures << " Is really dangerous " << endl; void Mainmenu(){ string choice; cout << "1: Attack creature" << endl; cout << "2: Buy equipment" << endl; cout << "3: Inventory" << endl; cout << "4: Stats" << endl; // invalid option returns to this InvalidOption: cin >> choice; if (choice == "1"){ Wilderness (); else if (choice == "2"){ Tracepoints Strategically placed in the code Conditionally generate messages Free-form text with a timestamp Much more detailed than logs Use cases Understand how a system operates Debug issues Analyze performance/workloads TRACEPOINT( ); message

Tracing in Spectrum Scale ~64 subsystems VFS, NSD, Threads, Mutexes, … ~16 priority levels 64-byte array Global on/off switch Low overhead when off and when on 1 comparison – for globally off 2 comparisons – for globally on and locally off (2 comparisons + trace record generation) – for globally and locally on 20,000+ tracepoints Some on hot code paths

Tracing optimizations GPFS Trace Buffer Code inlining (no function calls) Zero-copying Binary trace records Additional formatting step Overwrite and blocking modes Compression Per-CPU structures Trace Record Trace Record Trace Record Trace Record Trace Record Trace Record Binary Trace File Formatted Trace File Disk

Traces Are Large High overheads to collect Long transfer time Long analysis time

Distribution Over Levels Number of tracepoints Trace level

Over Subsystems Number of tracepoints Subsystem

Performance

FlexTrace: Motivation RPC VFS

FlexTrace Enable individual tracepoints mmtracectl --set --trace=”VFS_READ_ENTER 1 VFS_READ_EXIT 1” enables trace points mmtracectl --set --trace=”VFS_READ_ENTER 0 VFS_READ_EXIT 0” disables trace points mmtracectl --set --trace=“bitmapall 0” resets the complete bitmap mmfsadm showtracebitmap shows all enabled trace points Move decision on tracepoint “cuts” from development to run time Tracing profiles mmtracectl --set --trace-profile=creates.ftr enables all trace points in the profile Existing subsystems/levels can be replaced with profiles Analysis-tailored profiles

FlexTrace: Evaluation Bitmap overhead – encouraging preliminary results

TraceAnz Collect Extract cruxes Visualize cruxes CRUX Trace Sampling TRC RPT Collect TRC RPT CRUX Extract cruxes Trace Sampling Fast trace collection Limiting higher levels of collection to more suspcicios nodes CRUX Visualize cruxes

TraceAnz: Early Prototype

TraceAnz: Real-world limitations Long delivery cycles Small modifications New analysis Dependency hell No access to traces and cruxes Narrow applicability

TraceAnz: Web-service GPFS NFS Blktrace … Users Browser Vasily Tarasov - vtarasov@us.ibm.com