A simple svn cat http://... can generate something like 278 packets going over the wire. This may be due to a suboptimal configuration of the Apache webserver. If the network traffic contains a lot of SYN/SYN Ack packets then a simple tweak in the Apache config file can give a big gain in performance: The KeepAlive option tells Apache to allow a connection open after the requested page has been server. That way a client can request a new page without going through the TCP handshaking process. A sensible configuration might look like:
# KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Set to "Off" to deactivate. KeepAlive On # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. MaxKeepAliveRequests 100 # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. KeepAliveTimeout 15
With this simple trick I could drop the number of packets from 278 to 100.
If path-based authorization is not needed, then the "SVNPathAuthz off" config option helped to drop further packets.
I would like to publish here more tuning tips; if some tips are missing, please mail them to <tehpeh@gmx.net>.