解决struts组件上传附件速度很慢的问题

来源:互联网 发布:js contains 编辑:程序博客网 时间:2024/05/01 17:57

                                          作者:huangshuidan@gmail.com 2009-11-16

     最近项目现场反馈回来一个问题,服务器那台机子上传附件速度很快,通过其他机子访问上传附件速度相当慢,我把现场的应用拷回来,部署在公司的90.27那台机子上,我本机去访问这个应用,上传2M多的附件速度非常慢,实在受不了那种速度,接着就在我同事的机子上测试,上传速度挺快的,同时也在另外三个同事的机子上测试,结果是其中有一台跟我的情况一样,上传慢,另外几台上传快,这是什么原因呢?刚开始一直认为是杀毒软件在作怪,我就把杀毒软件给卸载了,迅雷也卸了,还是慢,真是郁闷啊!这个共享库系统是我负责开发的,只好想尽一切办法来解决,花了不少时间呀。

      在网上查了一下资料,这方面的内容并不多,好不容易看到这么一个信息:“是不是用的IE6? IE6有个上传慢的问题,它一次传输一块数据(通常是8K),这块数据没有被ACK回应,则不发送下8K。然而ACK经常会发生延迟回应(通常是延迟200ms),导致IE速度很慢,极端情况下,IE的上传速度是firefox的十分之一不到。IE7已经改了这个问题了。”我的应用出现的问题跟这个差不多就是IE6,ACK经常会发生延迟回应(通常是延迟200ms),导致IE速度很慢。其实要解决这个问题很简单,只要在Tomcat的server.xml中加一个参数就可以解决了。

 <Connector
port="80"   maxHttpHeaderSize="8192"  maxThreads="150" minSpareThreads="25"

红色部分要加的参数,maxHttpHeaderSize="8192" ,Request和response的 HTTP header的最大长度,以字节计算。如果不设置,该属性为4096(4k)

我加上了这个参数后,上传的速度就非常快了,到这里已经解决struts组件上传速度慢了问题了,希望对大家有帮助。