我们有10名工作人员处理用户的连接。工作人员使用FCGI
和FCGI::ProcManager
在Perl中实施。
有时,一名工人停止处理连接。 Strace显示:
futex(0x7fa9ebde0e80, FUTEX_WAIT_PRIVATE, 2, NULL
就是睡觉,等待futex。
工人永远不会从等待中回来。
如果我们用
杀死这名工人kill -9
然后它的父母收获它。返回代码等于9.
我们的项目是高负荷。这个问题很少出现。
答案 0 :(得分:0)
此系统调用通常用于实现共享内存中锁定的竞争情况,如futex(7)
中所述
所以我的第一个问题是:你的Perl脚本使用的是“Perl线程”吗?你是否在争夺共享内存变量?