我有一个自定义日志记录进程,它从STDIN读取并通过TCP将数据发送到划线记录服务器。 在我的情况下,STDIN是一个访问日志,在httpd.conf中附加到Apache httpd 2.2,如下所示: CustomLog“| / usr / local / bin / serelog”默认
我的serelog进程有时会在FreeBSD 9.0下进入不间断的睡眠状态,并且不会从它返回。它在其他操作系统下可靠运行,包括FreeBSD 8,Linux 2.6和Linux 3.1。
我怎样才能找出不间断睡眠的原因?
整体结构如下: httpd - [PIPE] - > serelog - [TCP-CONNECTION] - >刻划
到目前为止,我做了以下分析:
所以我现在陷入了一个不间断的过程,显然不在系统调用中, 并且在跟踪时可靠地工作。唯一的好处是我能够重现几个行为 我通过JMeter loadtest(JMeter中的5个线程)发送大量HTTP请求时的秒或分钟。
有关调试,内核参数调整的任何提示都很受欢迎。
问候
答案 0 :(得分:1)
该问题已被证明是一个实际的FreeBSD内核错误,现在已在内核中修复。
链接到PR:http://www.freebsd.org/cgi/query-pr.cgi?pr=166340
建议的补丁:http://lists.freebsd.org/pipermail/freebsd-bugs/2012-May/048610.html