日期:2014-05-17 浏览次数:20847 次
?
目前公司中使用到了apache+jetty/jboss的架构模式,apache承担了日志记录的一个职责。
?
同事在做性能测试时,发现一个奇怪的现象:15个并发直接压apache,load居然达到了100多,tps只有200多。直接压后端的jboss tps可以有1000多。
?
1. 刚开始以为是apache keepalive的搞怪,但后来确认apache配置文件的keepalive模式已经是Off。看了下tcp状态,近1000个close_wait状态(说明是客户端主动关闭,服务端是被动关闭),ESTABLISHED也就20多个.
?
2. 下一步确认apache和后端的jboss链接是否存在异常,通过观察mod_jk的日志文件,ajp协议的tcp链接状态,一切正常,而且链接数也就是80来个,说明到后端的压力并不高。
?
3. 进一步确认apache线程数,发现apache_error.log已经出现Max Client的现象,链接数过多。
?
[Sat Mar 12 17:44:31 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting
?
4. 查了下系统的性能参数(nnd,机器上居然没装sysstat包,sar,iostat命令都用不了),使用vmstat -n 1看了下。 发现cpu 的iowait参数居然达到了60%,基本猜想估计是apache日志记录出了问题
?
5. 检查apache conf文件,使用的log配置。
?
CustomLog "|/usr/alibaba/cronolog/sbin/cronolog /home/ljh/output/logs/cookie_logs/%w/cookie_log" cookie_log CustomLog "|/usr/bin/logger -p local1.info" cookie_log
?
使用了两个CustomLog.
?
cronlog | 10并发 | 20并发 | 50并发 | 100并发 |
Blk_wrtn/s |
3720 ? |
5077 | 6621 | 9394 |
cpu iowait | 1% | 1.2% | 1.4% | 2.2% |
request tps | 1310 | 1751 | 2563 | 3241 |
syslog | 10并发 | 20并发 | 50并发 | 100并发 |
Blk_wrtn/s |
1808 |
1790 | 1845 | 1760 |
cpu iowait | 11.9% | 12.2% | 12.6% | 12.4% |
request tps | 58 | 50 | 51 | 48 |
syslog | 10并发 | 20并发 | 50并发 | 100并发 |
Blk_wrtn/s |
1235 |
1624 |
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|