太多的futex()调用

时间:2010-08-04 16:24:02

标签: linux futex

我们正在观察Linux RedHat计算机上的一个Java应用程序在尝试发布到外部MQ队列时出现异常延迟(以前从未发生过)。快速检查盒子和CPU /内存使用情况似乎很好。 MQ盒子也很好。重启我的Java进程,没有运气!之后我们抓取了一个快速的strace快照,并且它充满了futex()次来电。

想知道是否有人可以提供任何关于为什么会发生这么多锁定的线索(我知道这是一个非常开放的问题。取决于应用程序实际上做了什么)。

但我希望能更深入地了解这个问题。

1 个答案:

答案 0 :(得分:2)

您是否真的对其进行了分析并确定futex调用是瓶颈?

假设你做了,有一件事可能是futex()系统调用意味着互斥锁是争用的; FUTEX =快速用户空间互斥,在没有系统调用的情况下在用户空间中处理无竞争互斥锁。也就是说,您可能遇到锁争用问题。