Unusually Slow HTTPS w/Apache 2.0.59 and SVN 1.4.2...
From: Charles Chen <cchen_at_charliedigital.com>
Date: 2006-11-22 14:12:19 CET
I've recently set up a new SVN server.
The server has 1.1 GHz AMD Athlon and 1 GB RAM. I'm running Apache 2.0.59 on Windows 2003 with SVN 1.4.2.
I've successfully set up https:// access, but it is unusually slow compared to a previous setup I've done in the past...extremely slow.
For example, svn list https://<url> at the root of a directory with total of 10 directories and 30 files totaling about 600k of data takes ~34 seconds (26 revisions)! With svn://, I'm seeing times more like 2-3 seconds for an ls on the same directory. As a reference, I conducted tests using svn:// and https:// from both a remote client (I remote desktoped to the client and ran svn from there) and my desktop (the server is on the same network as my desktop).
This has been an extremely frustrating experience as there are a few oddities:
1. I have Trac setup to run also over https:// and it's very fast; no problems at all from the remote client or my desktop. So it seems like at least Apache itself is working fine and so are the SSL modules. So to be clear, HTTPS is fine.
2. svn:// from the remote client and my desktop are both extremely fast.
3. https://<external-ip>:<port>/<repo> has been extremely slow!
4. Now here's what's kind of throwing me off: https://<server-name>:<port>/<repo> is fast.
So I'm confused becuase it seems that https:// is just fine as long as I'm using the computer name but it doesn't seem like an external routing issue as HTTPS access is fast for everything else. Now what I did do is run three wireshark (Ethereal) traces after noticing some weird bandwidth usage behavior when I was using TortoiseSVN initially to do the checkouts. Essentially, the bandwidth usage would bob between 0 and 50 bytes for a good 20-30 seconds and then jump to a more reasonable range of 50-70 KB/s and download the files on checkout.
Here's an outline of the three traces:
1. From my desktop to the server using https://<external-ip>:<port>/<repo> resulted in 152 frames (forgive me, I'm not very good at reading this output yet). There were numerous transmissions over HTTP which were not present in either of the other two traces and also a lot of TCP retransmits (again, not in the other two traces). (Slooooow)
2. From my desktop to the server using https://<server-name>:<port>/<repo> resulted in 89 frames. (Fast)
3. From my desktop to another, much, much larger repository using https://<external-ip>:<port>/<repo> resulted in 87 frames and had a similar transmission pattern as 2. (Fast)
My SVN config is set as such:
Any insight would be appreciated.
-- Charles Chen
This is an archived mail posted to the Subversion Users mailing list.