Performance 解释strace以表征延迟/延迟

Performance 解释strace以表征延迟/延迟,performance,strace,Performance,Strace,我在Linux内核2.6.27.45上的嵌入式系统上运行了一个守护进程。其中一个过程没有按预期的那样执行,我尝试使用strace进行进一步分析。我在网上的一些帖子后面添加了一些功能,将附加进程的堆栈跟踪打印到strace。 使用的命令是: enter code here strace -T -i -r -tt -q -O 1 -o /tmp/syscallsM -p $tpid 在对第1列进行排序后,我得到如下输出: 0.966638 [088cea24: 360eead8 08f9e71c

我在Linux内核2.6.27.45上的嵌入式系统上运行了一个守护进程。其中一个过程没有按预期的那样执行,我尝试使用strace进行进一步分析。我在网上的一些帖子后面添加了一些功能,将附加进程的堆栈跟踪打印到strace。 使用的命令是:

enter code here
strace  -T -i -r -tt -q -O 1 -o /tmp/syscallsM -p $tpid
在对第1列进行排序后,我得到如下输出:

0.966638 [088cea24: 360eead8 08f9e71c ]089985d4 ]08998e20 ]12c9352c ]1058e71c ]10551388 ]1054e120 ]10517f40 ]105143e0 ]10514c1c ]write(33, "x", 1) = 1 <0.028588>

 0.417500 [088d625c: 3b3e1878 121576e8 ]12163e1c ]1216473c ]12b6e75c ]112bc3e0 ]112d7880 ]112d7aa0 ]112d6b00 ]112d9aec ]112fd000 ]ioctl(29, 0x20004c01, 0) = 0 <0.000032>

 0.282577 [1019e878: 30766c98 1374a008 ]1374a1f0 ]10198854 ]10198b0c ]1019908c ]10195cb4 ]10195e08 ]1019611c ]1019a810 ]10191fa0 ]--- SIGVTALRM (Virtual timer expired) @ 0 (0) ---

 0.252104 [082f4808: 35a55a08 0899e314 ]1217ecb8 ]11c47918 ]1219a614 ]12bfeee4 ]1058e71c ]105c51f0 ]105c5980 ]10578674 ]105bfa4c ]futex(0x89ba380, FUTEX_LOCK_PI, 1) = 0 <0.000033>
我的问题是:

1如果我们以0.252104开头的行为例,是否意味着252ms包括堆栈1019E878,…10191fa0上的所有函数以及当前堆栈082f4808…1219a614中调用futex之前的执行时间,..10578674加上任务计划完成的时间加上futex调用的执行时间,即33us

2有没有办法弄清楚futex呼叫是否真的导致流程等待

3内核在进行系统调用时是否会将此任务调度出去

4在以0.282577开始的线路中,SIGALARM时间是否导致283ms延迟? 5在以0.417500开头的线路中,进行ioctl调用是否会导致418毫秒的延迟?虽然ioctl本身是在32us内完成的。 谢谢和问候