I was doing some benchmarking to compare the performance of SVN on
different hardware, with different server versions and access modes (ie.
https, svn, or svn+ssh), and I ran across a behavior with the perl
bindings which I found somewhat strange. Essentially, the perl script
that is attached just continuously loops doing an svn ls operation using
the perl bindings. What I noticed is that when using svn, there seems to
be an svnserve child process for every ls operation. These processes
stay around until the script terminates. When using svn+ssh, there is an
ssh-tunneled svnserve process for every ls operation.
Why is it that every operation creates a new connection or tunnel? I
could see if the perl bindings weren't smart enough to cache connections
where a new connection might be used each time, but it seems inefficient
to just leave the previous connections open until the perl process
terminates. This behavior seems to occur with other operations as well
(such as mkdir).
Below are the details of my test setup.
Thanks,
Brian
Server version:
svnserve, version 1.4.0 (r21228)
compiled Nov 3 2006, 11:47:41
Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet
(http://www.Collab.Net/).
The following repository back-end (FS) modules are available:
* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.
Client version:
svn, version 1.3.2 (r19776)
compiled Sep 21 2006, 21:53:38
Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet
(http://www.Collab.Net/).
The following repository access (RA) modules are available:
* ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
Server is running on RHEL4-ES4U4. Client is running on Fedora Core 5.
perl 5.8.8 is being used on the client side.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Sat Nov 4 16:17:34 2006