基本问题很简单: 我有一个实时(基于Xenomai API)的应用程序,负责定期启动可执行文件列表。 我的目标是监视整体执行情况,以查看这些任务是否遵守了期限,测量其执行时间等以进行一些统计分析。
问题在于这些信息的监视和记录:我找不到如何具体记录这些进程的执行情况(即不是整个linux线程,因为我至少需要在30天内运行测试)分钟:数据太多。.!)使用外部专用工具。
我的第二个选择是直接在我的软件上实现此功能,但是我不知道如何以一种很好的方式来避免不必要的开销(记住:我正在实时进行)。但是,这是一个计划B,只有在当前问题找不到解决方案的情况下,它才会成为问题。 :)
我已经尝试过的东西
我最初的想法是将ftrace与trace-cmd工具一起使用。 但是,我有几个问题:
如果我使用trace-cmd命令行运行应用程序
sudo trace-cmd record -e all -F ./Application.out -c
,Xenomai不喜欢sudo,并且事物被阻止(首次启动的任务被填充并继续执行...)。
如果我在一侧运行应用程序,然后将ftrace附加到它
trace-cmd record -e all -P [taskPID] -c
,我设法使所有内容都运行起来...但是当我通过PID附加到它时,我无法监视所有已创建的子任务,而我只能得到主要的应用程序跟踪。
因此简而言之: 1)我可以用来获取所需数据的ftrace某些选项的任何线索吗? 2)如果没有,其他工具可以做到吗?我也看到了Strace,但看起来我将遇到完全相同的问题... 3)如果没有,我唯一的选择是真的要在应用程序中进行所有测量,因此,我应该创建另一个问题,以查看实现此目标的最佳方法。 (希望我们不会到达第3点)!!)
在此先感谢您的帮助!