Performance too low --> trying to debug --> problems compiling
From: Harvey, Edward <Edward.Harvey_at_patni.com>
Date: Sat, 5 Apr 2008 18:22:18 -0400
The core of the problem I'm trying to solve right now is thus:
I have a 2.1G working copy (including .svn files) of 43,000 files (not including .svn files). Naturally everything I do seems to take forever, but I talked with some other people at another company with just as much stuff, and they say theirs works fine. So I'm trying to figure out how I can improve this. I did some basic top / iostat / wireshark, and found this:
I do "svn update" and I see svn climb up the top, to occupy 2 or 3 % of the processor, but mostly sleeping, presumably iowait. Yet iostat shows very bursty disk usage, one second there's no io, the next second a huge burst, and so on. 6.5 minutes later, wireshark shows the first packets going out to my svnserve. It seems svn must walk the whole tree before it contacts the server? And for the next 4 minutes, it bounces around between mostly idle, bursty local disk, and bursty network traffic (downloading files). For a total of 10 minutes before the command completes.
So I'm trying to figure out what svn is doing with its time. I'd really like something like svn update --verbose, or svn update --debug, but it doesn't seem to exist.
So then I took a guess that I could probably get some debugging option turned on if I recompile from source (previously always installed from rpm).
If anyone knows a better way to detect what svn is spending its time doing, please let me know. I'd love to skip the compile.
But if we don't come up with a better way of debugging above, here's my compile problem...
RHEL 4u5 x86_64. Not much customization; basically out-of-the-box.
tar xzf subversion-1.4.6.tar.gz
tar xzf subversion-deps-1.4.6.tar.gz
(Everything looks good, but warning about no Berkeley DB)
Error as follows:
cd subversion/libsvn_ra_dav && /bin/sh /scratch/eharvey/subversion-1.4.6/libtool --tag=CC --silent --mode=link gcc -g -O2 -g -O2 -pthread -rpath /scratch/eharvey/local/lib -o libsvn_ra_dav-1.la commit.lo fetch.lo file_revs.lo log.lo merge.lo options.lo props.lo replay.lo session.lo util.lo ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la /scratch/eharvey/subversion-1.4.6/apr-util/libaprutil-0.la -lexpat /scratch/eharvey/subversion-1.4.6/apr/libapr-0.la -lrt -lm -lcrypt -lnsl -lpthread -ldl /scratch/eharvey/subversion-1.4.6/neon/src/libneon.la -lz
/usr/bin/ld: /scratch/eharvey/subversion-1.4.6/neon/src/.libs/libneon.a(ne_request.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/scratch/eharvey/subversion-1.4.6/neon/src/.libs/libneon.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [subversion/libsvn_ra_dav/libsvn_ra_dav-1.la] Error 1
I've tried everything I could think of - export CXXFLAGS=-fPIC, editing Makefile, googling around, searching this list, run it as root, with or without the prefix, export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib
Still no luck.
This is an archived mail posted to the Subversion Users mailing list.