我的java web应用是 struts1 hibernate oracle 10g tomcat,在线用户也就两三百个,但是有时候打开首页都很慢,首页虽然说有一百多k,网络正常,服务器网络也正常,但是访问首页都要四五秒,首页也并没有牵扯到数据库,请问这个问题在哪里

解决方案 »

  1.   

    首页里面可能加载的js文件多,或者可能有请求http响应的内容
      

  2.   

    时快时慢最可能是两个原因:
    1、容器问题:
    看样子你的css、js、图片都是跑的tomcat,虽然tomcat能做web服务器,但毕竟性能很差,建议用apache或者ngix,也许在一个瞬间的请求高峰,并发达到tomcat的瓶颈,所以可能会慢。
    2、数据库:
    执行某些sql太慢,也许单机测试的时候你觉得sql都没有问题,一旦有几十人一起并发执行的时候可能就非常慢。在mysql里面可以查询所有正在执行的sql,以及执行时间,于此来判断是否有sql,有性能问题,oracle我不知道,可能也有吧。
    3、可能是网络原因,http协议是无连接,也许某个瞬间有100个用户同时请求、返回。一个页面100KB,100个用户同时返回就是10MB,换算成带宽就是80Mb带宽。其他的原因就是服务器的问题,一般可以优化一下性能,ssh太重了,jar文件就有几十兆,能不慢吗?
    或者你的应用并发太高,一台服务器支撑不下去(有时候不是服务器支撑不下去,而是容器),这时需要多台容器做负载(一台高性能的服务器上跑多个tomcat做负载,也能提高性能,尤其是对tomcat6以前的版本)。
      

  3.   

    这个还不简单,想找到原因。用firebug 下面的网络监控,那里可以看执行具体某一方法需要多长时间,看看到底是执行那一个方法比较慢。这不就行了。
      

  4.   

    up,js和css有时也会影响速度的。。你去好好观察下,