好像把apache httpd降级到1.3.x目前来说有效地扼制了该纠结的再次发生,当然,这是还没有完全通过机器压测以及人肉压测证实的,因为各路PM都太忙,前几天发过的一个禁止所有人碰那台server的禁令发布以后真的就没有任何人在碰了,导致降级后服务的压力很轻很轻,除了某health check脚本意外只有我等一二人在随机访问服务。
不过,就像已经敲定的,即使降级到1.3.x可以100%消除这个问题,这也只不过是一个workaround,而不是solution。我真期待我可以NB哄哄地去提个patch给tomcat,可为啥感觉这概率会很小乜…为啥还是很在意dmesg里网卡TSO被disable的那几条日志乜…为啥还是很怀疑e1000网卡驱动的那几个看起来很match该server运行环境的known issues乜…
明天的任务是改掉tomcat的AJP 1.3 connector,强迫丫不许和httpd私下协商来重用已有的AJP连接然后和httpd 2.2.x连接测试——假如这能阻止httpd 2.2.x犯错误,那就意味着…其实也就是验证了下我们长久以来的怀疑:httpd不知道为啥突然漏读/漏发了,导致以后所有的request/response都错了一个位置。显然不重用已有AJP连接的话,AJP协议为数不多的这点儿好处也基本用不上了,对性能肯定是一记重击,是万万不可能用于production上的。
话说tomcat的代码看久了,感觉也不过尔尔,有些繁琐罗嗦跟不上时代,典型的SUN风格。有空倒是该尝试尝试jetty、resin,以前总觉得这俩东西不入流…