今天有同学希望将webserver与后端fcgi换成长连接以提高性能,于是在lighttpd里直接配置proxy-core.max-keep-alive-requests即可,为了做测试,后端只启动了一个fcgi进程。然后发现了奇怪的问题,每隔几个请求就会有一个非常非常慢的连接,需要等待10s左右。

    后来决定开strace看看,由于lighttpd配了多进程,不好搞,于是改成单worker,结果问题解决了。


    这样问题就豁然开朗了,原来多个请求落到了不同的lighttpd工作进程上,而唯一的一个fcgi进程被处理第一个请求的worker起长连接占用了,结果导致其他lighttpd无法连接到后端。


    这是一个启用长连接后比较隐蔽的坑,可能会导致各个webserver的worker进程间负载不一致。需要小心了。




Tags:
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]