Perl的工作人员不处理连接,等待futex

时间:2013-07-02 07:46:14

标签: perl fastcgi futex

我们有10名工作人员处理用户的连接。工作人员使用FCGIFCGI::ProcManager在Perl中实施。

有时,一名工人停止处理连接。 Strace显示:

futex(0x7fa9ebde0e80, FUTEX_WAIT_PRIVATE, 2, NULL

就是睡觉,等待futex。

工人永远不会从等待中回来。

如果我们用

杀死这名工人
kill -9

然后它的父母收获它。返回代码等于9.

我们的项目是高负荷。这个问题很少出现。

1 个答案:

答案 0 :(得分:0)

根据futex man page

  

此系统调用通常用于实现共享内存中锁定的竞争情况,如futex(7)

中所述

所以我的第一个问题是:你的Perl脚本使用的是“Perl线程”吗?你是否在争夺共享内存变量?