- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我运行一个相当流行的基于浏览器的网络游戏,运行在 Apache (worker) 和 mod_perl 下。在高峰期,当服务器每分钟处理大约 4200 个请求时,Apache 进程每 3-15 分钟左右就会挂起一次。
我已经确定这些进程卡在“FUTEX_WAIT”状态,并且似乎没有做任何事情:它们不消耗 CPU 或在 RAM 中变大。但这是一个严重的问题,因为它们只是坐在那里,占用 RAM。
我目前的解决方案是一个 cron 作业,它剔除卡在 futex_wait_queue_me 中的 Apache 进程。但这并不是很好,因为恰好正在等待挂起的 Apache 进程的响应的用户会收到错误(500:服务器关闭连接而不发送回数据)。
我无法在我的开发机器上重现该问题,也不知道如何进行故障排除。我很想知道:我怎样才能进一步诊断这个问题?
编辑:我发现问题发生在流量激增之后,当 Apache 生成更多工作进程,然后尝试剔除它们时。从 child 的角度来看,这是它正常工作时的样子:
$ sudo strace -p 21764
Process 21764 attached - interrupt to quit
read(5, "!", 1) = 1
tgkill(21764, 21791, SIGHUP) = 0
tgkill(21764, 21791, SIG_0) = 0
select(0, NULL, NULL, NULL, {0, 500000}) = ? ERESTARTNOHAND (To be restarted)
--- SIGTERM (Terminated) @ 0 (0) ---
rt_sigreturn(0xf) = -1 EINTR (Interrupted system call)
munmap(0x7f9905750000, 8392704) = 0
munmap(0x7f98f8736000, 8392704) = 0
[...]
madvise(0x7f98e4021000, 73728, MADV_DONTNEED) = 0
exit_group(0) = ?
Process 21764 detached
...但偶尔会这样:
$ sudo strace -p 24133
Process 24133 attached - interrupt to quit
read(5, "!", 1) = 1
tgkill(24133, 24164, SIGHUP) = 0
tgkill(24133, 24164, SIG_0) = 0
--- SIGTERM (Terminated) @ 0 (0) ---
rt_sigreturn(0xf) = 0
select(0, NULL, NULL, NULL, {0, 500000}) = 0 (Timeout)
tgkill(24133, 24140, SIGUSR1) = 0
futex(0x7f9904f4e9d0, FUTEX_WAIT, 24140, NULL
... 不再继续。
我不知道如何进一步调试它。
最佳答案
这是由于 mod-perl 中的错误,已修复,记录在此处:
关于perl - Apache mod_perl 进程卡在 futex_wait 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7763033/
我有一个“服务器”进程a,可能还有多个“客户端”进程b。服务器创建一个共享内存文件 (shm_open),其中包含一个 pthread_mutex_t 和一个 pthread_cond_t,用于向客户
我运行一个相当流行的基于浏览器的网络游戏,运行在 Apache (worker) 和 mod_perl 下。在高峰期,当服务器每分钟处理大约 4200 个请求时,Apache 进程每 3-15 分钟左
我一直在使用 strace 跟踪进程,并看到如下条目: futex(0x7ffff79b3e00, FUTEX_WAKE_PRIVATE, 1) = 1
我正在使用 C 语言编程,在内核为 2.6.18-238_xen_AMD64 的 RHEL5.6 上使用 berkeley db 4.3 (/usr/lib64/libdb-4.3.so)。 在我的测
我是一名优秀的程序员,十分优秀!