[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Question about ra_svn+ssh on win32 performance bottleneck

From: Brandon Ehle <azverkan_at_yahoo.com>
Date: 2003-03-19 16:50:03 CET

I've been tracking down a windows performance issue with MoonFallen on IRC and I'm pretty sure I
know what is going on, but I was wondering if anyone could offer any suggestions as to what fix
would be required.

Checking out my test repository reveals the following times:

Linux (connecting to localhost)
ra_svn + daemon = 12s
ra_svn + ssh (blowfish cipher) = 13s
ra_svn + ssh (3des cipher) = 15s

Win32 (talking to the linux host from above)
ra_svn + daemon = 14s
ra_svn + ssh (blowfish cipher) = 159s
ra_svn + ssh (3des cipher) = 161s

As you can see, there a huge disrepancy between the daemon and ssh modes when talking over ra_svn.

For ra_svn+ssh+3des, I've done some investigation and VTune has attibuted 151s of the 161s to the
ReadFile function in KERNEL32.DLL. The top cost call stack looks like this:

ReadFile
read_with_timeout
apr_file_read
readbuf_input
readbuf_fill
readbuf_getchar
readbuf_getchar_skip_whitespace
svn_ra_svn_read_item
svn_ra_svn_read_tuple
svn_ra_svn_handle_commands
svn_ra_svn_drive_editor
ra_svn_checkout
...
main

Here's a view of the graphical profile from VTune on windows of the above data:
http://www.pipedreaminteractive.com/profile.png

When I profiled ra_svn+daemon, there is almost no time spent in ReadFile (<.2s).

Looking at the source for ra_svn_open:
http://svn.collab.net/repos/svn/trunk/subversion/libsvn_ra_svn/client.c line 322

I see that if a tunnel agent is being used, data gets transfered via ReadFile and NamedPipes
rather than the socket layer.

Does anyone have any idea why the named pipe is going so slow as it CVS over ssh doesn't seem to
have this problem?

__________________________________________________
Do you Yahoo!?
Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop!
http://platinum.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Mar 19 16:50:46 2003

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.