Présentation
Présentation en anglais dans les locaux de LightSpeed à Montréal.
Titre: Multilevel Debugging of Web Applications
De: Naser Ezzat @naserjv, polytechnique de Montréal
51 slides, 54 minutes.
Début de la présentation à 19:18, fin 20:12, fatigue: 20:00
Mot clés: LAMP, LTTng, Trace, Compass, PHP, MySQL
Note
LTTng allows low-level/low-cost tracing for Linux kernel. We can use log from LTTng in Trace Compass. - Other tracers, like ftrace LTTng allows high-level application tracing. - instrumental - LTTng-UST (user-trace) with tracepoint() function A Apache2 Module is available for LTTng - https://github.com/naser/Apache-LTTng-Module A PHP Extension is available for LTTng - https://github.com/naser/LTTng-enabled-PHP - https://github.com/naser/php-LTTng-tracing-module - 13 tracepoints: request, function, error, compile, event, exception - add trace_print() With MySQL/MariaDB - 60 tracepoints ./configure --enable-lttng cmake make make install (Note: I don't see any --enable-lttng in https://github.com/MariaDB/server or in cmake/configure.pl) or in https://github.com/mysql/mysql-server/search?q=lttng&unscoped_q=lttng (Don't find anything on mysql and lttng, except about this presentation) Integration full stack Linux Kernel - Apache2 - PHP - MySQL Views : timeline, flame chart Performance - almost the same with apache bench (5000 request), with lttng, max-lttng, min-lttng or without. ab -c [5-100] -n 5000 http://www.website.com/ Use Case 1: PHP OP-Cache verification Detect PHP Share Memory Lock (inter process in apache2) Detec update/write memory cache slowdown Allow Dual-Tracing - with trigger (threshold) to enable kernel tracing for some millisecond after an event - log always in cache but no output in file unless there is a trigger
Question
Q: Can we filter PHP tracing by namespace, path or module ? A: Not with the lttng, but you can filter the log after.
Compléments
LTTng: Linux Trace Toolkit Next Generation LTTng-UST: Linux Trace Toolkit Next Generation Userspace Tracer - https://github.com/lttng/lttng-ust - git://git.lttng.org/lttng-ust.git Other tracers: - ftrace, DTrace (unix/mac os x), ktrace, ltrace, strace, SystemTap Mysql + LTTng, un peu les mêmes renseignements que EXPLAIN?
Hyperliens...