问题标签 [lttng]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
logging - LTTNG 是否可以进行日志轮换?
是否可以对 Lttng 收集的跟踪应用大小限制或覆盖旧跟踪。
/lttng-relayd.lin64 -C tcp://0.0.0.0:5347 -D tcp://0.0.0.0:5348 -L net://localhost:5349 -o lttng-traces -b --working-directory= /tmp
如果我让监视器连续运行,我会在我的 PC 上观察到磁盘已满错误,所以我想限制跟踪收集文件夹 lttng-traces 的大小。
buffer - 保存有关丢弃 LTTng 日志的信息
如果有任何方法来设置LTTng,如果日志缓冲区溢出(并希望有信息丢弃了多少消息),它会写入日志?
linux - 我可以在 Trace Compass 中同时查看 LTTng 跟踪的用户空间事件和内核事件吗?
我正在使用 LTTng 来跟踪内核事件和用户空间跟踪点。我想在一个 Trace Compass 窗口中将它们一起可视化。但是,LTTng 将内核事件和用户空间事件保存在单独的跟踪文件中,这不允许我在 Trace Compass 中一起查看它们。
这里有谁知道如何:
(1) 将两种事件保存在一个文件中?,或
(2) 使用 Trace Compass 组合来自 2 个跟踪文件的信息?
细节:
我正在使用 LTTng 来跟踪两种事件:
(1) 内核sched_switch
事件(当调度器引起上下文切换时)
(2) 用户空间自定义跟踪点(我将它们命名为 setMarkerTracepoint 并从我的 C++ 程序中发布)
我使用以下命令设置跟踪会话并开始跟踪
然后,我运行我的 C++ 应用程序并在我的应用程序结束后停止 LTTng 跟踪。
现在,当我检查我的跟踪数据的保存位置时,我发现 2 个位置有跟踪数据:
(1) /home/root/lttng-traces/kernel/
(2) /home/root/lttng-traces/ust/
我使用 Trace Compass 来可视化轨迹。内核目录下的文件包含所有 sched_switch 事件,但没有 setMarkerTracepoint 事件。ust 目录下的文件反之亦然。
我想在同一个 Trace Compass 窗口中查看我的 C++ 代码中的 sched_switch 事件和我的跟踪点。
Trace Compass 的用户指南和LTTng 文档没有讨论一起使用内核跟踪和用户空间跟踪。
我认为这应该是可能的,因为如果我使用lttng-view
安装了 babeltrace 的命令,我可以看到由lttng-view
.
任何帮助将不胜感激!:)
c++ - 在函数调用中跟踪时间 - C++
我的功能之一是执行时间比预期的要多。它是嵌套函数之一,这些函数分布在一个大项目的多个文件中。
我正在考虑一种打印每个函数调用所花费的时间的方法。我不确定这是否是正确的方法。例如:
不幸的是,我被一个非常旧的编译器 gcc-4.1.2 困住了。是否有可能在不对文件进行过多修改的情况下跟踪用户空间中涉及的所有功能的时序(因为它是一个大项目并且功能分布在多个文件中)。或者如果有教程,请考虑将我指向链接。
谢谢
linux-kernel - LTTNG 抓取内核事件来监控进程和进程动作
我正在研究 LTTNG,目的是从其他进程(不是通过特定的 pid,而是通过任何进程)收集内核事件。我已经设法获得用于读写操作的内核系统调用,但是,在那里检索到的数据并不完全符合我的需要。
我需要能够看到创建进程时的实时提要(我需要 PID、进程路径和父 PID),最重要的是,我需要查看进程何时对文件执行读/写操作(以及这些文件到底是什么)。
在 Windows 上,我可以使用 ETW 跟踪接收此信息。我在 linux 上需要同样的东西,而 LTTNG 似乎是我研究过的最接近实现这一目标的东西。
有没有人尝试过这样做?
先感谢您!
lttng - 为什么在 TRACEPOINT_EVENT_CLASS 和 TRACEPOINT_EVENT_INSTANCE 中都定义 TP_ARGS?
我目前正在使用 LTTng 来解决此类性能问题,我也想使用TRACEPOINT_EVENT_CLASS
and TRACEPOINT_EVENT_INSTANCE
。
但我不明白 2.10 版本的文档。我想知道为什么我们需要TP_ARGS
在每个事件实例中定义以及在事件类中定义它。因为我们不能修改TP_FIELDS
来改变任何字段的类型,或者由许多参数组成。
linux-kernel - LTTng/Perf:用于退出 (sched_process_exit) 和释放 (sched_process_free) 进程的事件之间的区别
目前,我正在讨论使用 LTTng 和 Perf 进行内核跟踪的主题。我对追踪一个进程所处的不同状态特别感兴趣。
我偶然发现了这个事件sched_process_free
,然后sched_process_exit
。我想知道我目前的理解是否正确:
如果退出进程,则将其sched_process_exit
写入跟踪。但是,进程描述符可能仍在内存中,这会导致僵尸进程。当连接到进程的整个内存被释放时,sched_process_free
被调用。这意味着,如果我真的想确保进程完全“终止”并从内存中删除,我必须听sched_process_free
而不是sched_process_exit
跟踪。这个对吗?
trace - 是否可以查看正在运行的 LTTng 跟踪会话的跟踪?
我知道命令lttng view
。但它只能用于在会话停止后查看会话。
c++ - lttng-tools 返回不完整的类型错误
我正在尝试构建 lttng-tools 并且我不断得到这个
我还没有找到任何前向声明。是否可以让 GCC 告诉我它在哪里?
trace - 带有端口转发/隧道的 LTTng 实时视图
我有一台 PC A,其中 LTTng 跟踪正在运行实时取景
另一台 PC B通过以太网电缆直接与A相连。同时,B连接到本地网络。
现在我如何查看来自第三台 PC C的实时跟踪事件,它与B位于同一本地网络中,例如
我在 PC C上运行了以下命令,以建立到 PC * A的隧道。
然而,它似乎没有奏效。我想问一下:
- 我在这里做错了什么?
- “转发”要查看的 LTTng 实时跟踪事件的标准方法是
babeltrace2
什么?