Systemtap times April 2009

Similar documents
SystemTap update & overview. Josh Stone Software Engineer, Red Hat

Red Hat Summit 2009 William Cohen

SystemTap/DTrace with MySQL & Drizzle

kpatch Have your security and eat it too!

SystemTap for Enterprise

Dynamic Linux Kernel Instrumentation with SystemTap Eugene Teo, RHCE, RHCX

Survey of Dynamic Instrumentation of Operating Systems

SystemTap Tutorial - Part 1

Dynamic Linux Kernel Instrumentation with SystemTap Eugene Teo

Elivepatch Flexible distributed Linux Kernel live patching. Alice Ferrazzi

RALPH BÖHME, SERNET, SAMBA TEAM UNDERSTANDING AND IMPROVING SAMBA FILESERVER PERFORMANCE HOW I FELL IN LOVE WITH SYSTEMTAP AND PERF

System Wide Tracing User Need

Debugging Kernel without Debugger

Elivepatch Flexible distributed Linux Kernel live patching. Alice Ferrazzi Takanori Suzuki

Userspace Application Tracing with Markers and Tracepoints

Uprobes: User-Space Probes

Linux Foundation Collaboration Summit 2010

Tapir: a language for verified OS kernel probes

Efficient and Large Scale Program Flow Tracing in Linux. Alexander Shishkin, Intel

Reboot adieu! Online Linux kernel patching. Udo Seidel

Rebootless kernel updates

Analyzing Kernel Behavior by SystemTap

Observing HotSpot with SystemTap

uftrace: function graph tracer for C/C++

Eclipse on Linux Distributions Project

Linux Kernel Validation Tools. Nicholas Mc Guire Distributed & Embedded Systems Lab Lanzhou University, China

RHEL Packaging. (making life easier with RPM) Jindr ich Novy Ph.D., June 26, 2012

Live Kernel Patching status update. Jiri Kosina SUSE Labs

Open Enterprise & Open Community opensuse & SLE Empowering Each Other. Richard Brown opensuse Chairman

Red Hat Enterprise Linux 8.0 Beta

Introduction to Linux

Dynamic Tracing and Instrumentation

Open Message Queue mq.dev.java.net. Alexis Moussine-Pouchkine GlassFish Evangelist

LinuxCon North America 2012

Enterprise End User Summit 2012

Exam Questions 1Z0-460

Web Ontology for Software Package Management

CSE 4/521 Introduction to Operating Systems

Course Agenda. Crash Dump Analysis 2015/2016. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics.

RED HAT DEVELOPER TOOLSET: Build, Run, & Analyze Applications On Multiple Versions of Red Hat Enterprise Linux

Software Distribution and Package Management

Rebootless Kernel Updates

Frédéric Crozat SUSE Linux Enterprise Release Manager

The Kernel Report. (Plumbers 2010 edition) Jonathan Corbet LWN.net

Getting started with LXD

Identifying performance issues beyond the Oracle wait interface

Code Instrumentation, Dynamic Tracing

EnterSpace Data Sheet

Modern Linux Tools for Oracle Troubleshooting. Luca Canali, CERN Zbigniew Baranowski, CERN SOUG event, Prangins, May 2015

Collecting Linux Trace without using CodeWarrior

COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager

Combined Tracing of the Kernel and Applications with LTTng

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

Debugging Gluster with Wireshark and SystemTap

Chapter 2: Operating-System Structures

PreciseTracer A precise, scalable and online request tracing tool for multi-tier services USER S MANUAL

Introduction To 64 Bit Windows Assembly Programming Epub Gratuit

Using DATA Files for IBIS-AMI Models. Lance Wang DesignCon IBIS Summit Santa Clara, CA, USA Feburary 3 rd, 2017

A Practical approach of tailoring Linux Kernel. Junghwan Kang /

ITP 140 Mobile Technologies. Databases Client/Server

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Debugging of CPython processes with gdb

March 10, Linux Live Patching. Adrien schischi Schildknecht. Why? Who? How? When? (consistency model) Conclusion

Reviewing gcc, make, gdb, and Linux Editors 1

Real-time node.js: Instrumentation, Visualization & Debugging. Bryan Cantrill SVP,

ArcGIS Engine Developer Kit System Requirements

Fusion Registry 9 SDMX Data and Metadata Management System

Tracing Lustre. New approach to debugging. ORNL is managed by UT-Battelle for the US Department of Energy

ZENworks Linux Management Version 6.5 Release Notes

Integrating Open Source Tools for Developing Embedded Linux Applications

Static and Dynamic Analysis at. David Sklar - ZendCon 2008

Chapter 2 Operating-System Structures

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Red Hat Enterprise Linux 5. Joachim Schröder Red Hat GmbH

White Paper: Delivering Enterprise Web Applications on the Curl Platform

The Challenges of XDP Hardware Offload

Track Three Building a Rich UI Based Dual Display Video Player with the Freescale i.mx53 using LinuxLink

Dynamic Probes - Debugging by Stealth

Manual Install Package Rpm Linux Command Line

LinuxCon 2010 Tracing Mini-Summit

Digitizer operating system support

Helping Developers Help You. Tom Caputi

Oracle Linux 7: Advanced Administration Ed 1

Yocto Project components

Five Key Steps to Automating your Workload Migration to the Cloud SUN6469

Linux Fundamentals (L-120)

Landlock LSM: toward unprivileged sandboxing

Application Compatibility Guide

Contribute To Linux Mainline

NFS: The Next Generation. Steve Dickson Kernel Engineer, Red Hat Wednesday, May 4, 2011

Obstacles & Solutions for Livepatch Support on ARM64 Architecture

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition

Using DATA Files for IBIS-AMI Models

End to End DiagnosAcs with Oracle Solaris AnalyAcs

Know your Unknowns. Techniques for analyzing unknown software. (and dynamic reversing in general)

Linux Kernel on RISC-V: Where do we stand?

Chapter 2: Operating-System

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy

Why Oracle Linux. Hans Forbrich Forbrich Consulting Ltd. Why Oracle Linux

Ubiquitous System Analysis Performance Co Pilot. Abegail Jakop Lukas Berk Red Hat Oct. 23, 2014

Transcription:

Systemtap times April 2009 Frank Ch. Eigler <fche@redhat.com> systemtap lead

why trace/probe to monitor future background monitoring, flight recording programmed response to debug present symbolic, source-level exploration unforseen problems to analyze past collect traces analyze dumps

rich capabilities system-wide (kernel + userspace) programmable tracing/probing compatible with a wide range of kernels, distributions operates on live system, no patch/reconfigure/recompile/reboot measure time, access any data, explore control flow, correlate events, inject faults integrated access to multiple tracing facilities

consider alternatives ftrace hard-coded, kernel-only, single-user we share instrumentation hooks, some infrastructure ksplice unprotected, kernel-only, x86 maybe let's share code recompilation process dtrace not available on linux we share ambitions

examples http://sourceware.org/systemtap/examples/ http://sourceware.org/systemtap/wiki/warstories ordinary log events, filtered + correlated + summarized call graphs with variables measure times/values, indexed by anything graph cpu/net/disk utilization, act upon thresholds esoteric kernel-enforced file naming policy filters security bug band-aids

operation part 1 compile probe script foo.stp: parse script combine it with tapset (library of scripts by experts) combine it with debugging information, probe catalogues, event source metadata generate C code with safety checks compile into kernel module with kbuild result: vanilla kernel module

operation part 2 run probe module foo.ko: load into kernel detach (flight-recorder mode) or consume trace live unload probe module may be cached, reused, shared with other machines running same kernel sysadmins can authorize others to run precompiled modules

the upstream question but it already works on your machine not a driver; not a filesystem uses vanilla module APIs a little like X.org or glibc or kgdb or even latencytop... but with ~no kernel prereqs has large userspace component few novel kernel-side fixed pieces with likely non-stap in-kernel usage some have been & more will be submitted

community: inward contributors: dozens per release open project since inception user groups: university students, sysadmins, support engineers, kernel developers, userspace developers, data center customers distributions shipping systemtap: rhel, debian, fedora, suse, ubuntu, windows, mandriva, maemo, solaris, oracle, gentoo, centos,...

community: outward OLS presence since 2005, regular LKML presence since 2006 responding to kernel developer requests kernel build tree targeting debuginfo-less operation http://sourceware.org/systemtap/wiki/myths promote kernel dual use technologies markers, tracepoints, kprobes, relayfs utrace merging goalposts motivating tracing area

debuginfo bountiful gcc byproduct ease his pain: on-the-fly debuginfo generation, compression remote compilation server but: is it faster to repeatedly recompile w/ printk? they will come: statement-level, source-level symbolic access local variables, arbitrary expressions full type information but still go some distance without it

recent developments probing user-space programs attaching to user + kernel markers, tracepoints organizing more samples, documentation easing deployment: compile server easing usability by kernel developers: testing linux-next etc., kernel trees better error messages

kernel markers/tracepoints statically compiled into kernel/programs supplements dynamic instrumentation higher performance, reliable data shared hook sites between tracing tools programmable handling of events

user-space probing finally, system-wide, seamless, symbolic based upon dwarf debugging data (gcc -g) dynamically instrument binaries, shared libraries, potentially at the statement level easily trace variables attach to sys/sdt.h dtrace markers too, as compiled into postgres, java,...

user-space probing measure average dbms query execution times function time() { return gettimeofday_us() } probe process("psql").function("sendquery").call { entry[tid()]=time() } probe process("psql").function("sendquery").return { tid=tid() if (! ([tid] in entry)) next query=user_string($query) queries[query] <<< time() - entry[tid] delete entry[tid] } /* and an end probe to format report */

user-space probing probe end,error,timer.s(5) { foreach ([q] in queries limit 1) { any = 1 } if (any) { printf("%2s %6s %-40s\n", "#", "us", "query"); foreach ([q] in queries- limit 10) printf("%2d %6d %-40s\n", @count(queries[q]), @avg(queries[q]), q) printf("\n"); delete queries } }

user-space probing # us query 12 990 DELETE FROM num_result; 6 3909 COMMIT TRANSACTION; 6 132 BEGIN TRANSACTION; 6 143 SELECT date '1999-01-08'; 4 3651 insert into toasttest values(decode(repeat('1234567890',10000),'escape')); 4 3786 insert into toasttest values(repeat('1234567890',10000)); 4 1218 SELECT '' AS five, * FROM FLOAT8_TBL; 3 804 END; 3 295 BEGIN; 3 1032 INSERT INTO TIMESTAMPTZ_TBL VALUES ('now');

under construction system-wide backtracing for deep profiling java probing & backtracing unprivileged user support: masochism mode more debuginfo-less operation gui-controlled integrated general monitoring better quality and smaller quantity of debuginfo interface to other kernel event sources: perfctr, ftrace, kmmiotrace

samples/documentation samples installed, categorized, also online beginner's guide http://sourceware.org/systemtap/examples http://tinyurl.com/ar8wat wiki http://sourceware.org/systemtap/wiki

http://sourceware.org/systemtap