apache的性能问题,向大家求救!

apache的性能问题,向大家求救!

网络环境是一台能支持10万session的负载均衡设备把外部的请求分担到5台WEB服务器上,这5台服务器上的环境和部署的应用完全一样,
这5台机器的环境是(web server是apache1.3.28,App server是Was4.0,数据库是连到另一台内网机器oracle9i)在这5台机器的apache配置文件中做了一些反相代理到
其他的一些内网机器,每台机器的日常在线人数在3300左右,每台机器apache中的Maxclient最大并发数设的是500,
现在遇到个情况,就是这5台机器的httpd进程的并发数经常达到最大,不是同时达到最大,是某一台机器会到达最大,导致后面的请求在等待状态,
其实访问量并没有那么多,有的时候在深夜也会满,机器资源占用没有什么异常,也没发现可疑的IP,查看tcp的连接情况发现有很多连接处于time_wait状态,
这个状态是已经关闭了SOCKET连接后,TCP/IP协议默认的状态,要保持4分钟,再转为其他状态,占用大量端口,系统资源占用不大,请问是不是因为httpd进程是因为
分不到端口总是等待才会并发满的吗,如果我把time_wait的时间调少会不会有效呢,为了数据少丢失调多少合适,怎么改,如果不是这个原因还有些什么可能?
建议打开每条Query的请求时间,看一下在Httpd满的时候是否请求平均时间也被拉长了。设置Timeout值,使其变小,关闭KeepAlive,调整Sendbuffersize的值,这些都可以试一下。
timeout 值设成1 就行了~~
改timeout意义不是太大,具体问题具体分析了
主要是看你的网站是什么类型的了。首先看是否有必要启用连接保持,如果决定启用。那么请将keepalivetimeout 设置的短点,比如10S,如果系统显示的time_wait仍然很多。需要修改系统的time_wait时间。
timeout 一般是指当用户GET或者POST动作的时候,如果超过timeout,那就断开。除非的你的网络环境十分的 糟糕,一般是影响不大的
这个问题也是我提的,当并发数达到最大的时候我查看处在close_wait和fin_wait2状态的TCP连接,发现几乎都是通过was的plugin插件Transport的连接,大概有800个左右,请问这能说明是WAS的问题吗,请问怎么解决?
另外我改小了timeout的直15,关闭了keepalive好像没有效果
期待高手
没有人会吗
你可以尝试把程序和图片等静态分开到不同的服务器去专门请求。