0 Replies Latest reply on Jan 11, 2005 9:12 PM by mmerkulo

    Slow HTTP upload of POST content

    mmerkulo

      We are experiencing a very strange problem with HTTP uploads on jboss4/tomcat. When uploading large files from IE over the network, upload speed is capped at about 70kbytes/sec even though the network allows for much higher speeds. Neither CPU nor disk access appears to be the bottleneck. When using FireFox browser, upload speed is about 4000kbytes/sec. When using IE from the server through loopback adapter, speed is 7000kbytes/sec.

      This problem is happening on 2 separate servers. One is a win 2000 box with a freshly installed OS. The other one is a brand new windows server 2003 enterprise edition.

      There is one machine which runs file-for-file identical jboss installation under the same version of java. When accessing that machine with IE from other boxes, uploads go fast.

      I tried apache fileupload library and o'reilly MultipartRequest. I also tried reading directly from InputStream with this JSP page:

      <%@ page import = "java.util.*" %>
      <%@ page import = "java.io.*" %>
      <%
       InputStream is = request.getInputStream();
       byte buffer[]=new byte[128*1024];
       int bytes=0;
       int total=0;
       long totalbytes=0;
       long t1=System.currentTimeMillis();
       while (0 < (bytes = is.read(buffer))) {
       total++;
       totalbytes+=bytes;
       }
       long t2=1+System.currentTimeMillis();
      %>
      
      <%if (total > 0) {%>
       time(ms): <%=t2-t1%><br>
       total buffer reads: <%=total%><br>
       total bytes: <%=totalbytes%><br>
       chunks per second: <%=total*1000/(t2-t1)%><br>
       bytes per second: <%=totalbytes*1000/(t2-t1)%><br>
       average bytes per chunk: <%=totalbytes/total%><br>
      <%}%>
      
      <form method=post ENCTYPE="multipart/form-data">
      <input type=file name=a>
      <input type=submit>
      </form>
      


      I cannot figure out what's different between the machine on which it works and the two on which it doesn't. Any ideas?

      -- Mike