Data Collection
From TracingWiki
Tracepoints, once reached, may check if some conditions are met (e.g. tracing is currently requested for the current process). Then, they may write data describing the event either directly through a communication channel or to a buffer. The data thus collected from the various data providers can be extracted from the traced kernel in different ways, each bringing a different disturbance on the system.
- Writing to disk. It may involve writing huge amount of data (possibly gigabytes) to disk in order to get the full trace of the system. It allows a complete replay of the trace through all the tracing duration. It also provides complete information about the state of the system at any given time after the initial state dump is done. Under a medium to high event rate workload, a performance impact between 1 and 2% has been measured (see The LTTng tracer : A Low Impact Performance and Behavior Monitor for GNU/Linux presented at OLS2006). It will primarily impact the hard disk I/O performance.
- Sending to the network. Same as writing to disk, but sends data to a remote computer through a network socket. It will change the network performance but does not require a local disk.
- Circular memory buffers in overwrite mode. Also called flight recorder mode, this method consists in overwriting the oldest data in the buffers when they are filled. It can be seen as a logic analyzer: when tracing is stopped, only the last few seconds will be left in memory. Since this is usually the meaningful information that leads to the cause of a given problem, and because writing to memory buffers is the cheapest way to extract data (cheaper than sending to network or disk), this kind of tracing can be very useful to diagnose production systems. Under a medium to high event rate workload, a performance impact between 0.3 and 0.5% has been seen (see The LTTng tracer : A Low Impact Performance and Behavior Monitor for GNU/Linux presented at OLS2006).
Tracing Embedded systems, also called Target Devices, brings additional challenges because of the limited resources available. Within the Eclipse framework, a major component is the Device Software Development Platform, with dedicated sub-projects for Device Debugging and Target Management, including the Target Communication Framework. These sub-projects will address the issues of tracing activation and tracing data collection and transfer for embedded systems.
