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

Re: subversion 0.26 performance problem

From: Martin MAURER <martin.maurer_at_email.de>
Date: 2003-08-04 14:02:51 CEST

On Mon, 2003-08-04 at 07:06, cmpilato@collab.net wrote:
> Martin MAURER <martin.maurer@email.de> writes:
>
> > I got quite a strange subversion performance problem:
> > i have a repository consisting of the web tree of my company.
> > (the data is not important, it has been created using the backups - just
> > evaluating svn at the moment)
> > the repo consists of about 30.000 files in 55 revisions.
> > The SVN dir has 388 MB
> >
> > When i start "svnlook tree" on that repo, then it starts quite ok.
> > But as soon as it reaches a directory where i have about 4.000 images
> > (jpg,gif) it is getting very slow (a few seconds per file).
> > CPU is idle and Filesystem is not under heavy load too.
>
> Martin, I'm sure there are several developers who would be interested
> in seeing this behavior first-hand. Is your repository private? That
> is, could you make a tarball of it and provide a URL? (If the
> contents are private, and you trust me not to disseminate them, you
> could send me the URL privately).
well the problem is, that this data is the web-tree of the company I am
working at. So I dont want to hand that out unless _absolutely_
necessary.
I suggest the following: We first try to debug this with you just
telling me what to do. If we come to the conclusion that this won't help
i could give you shell access to my machine - would that be an
acceptable solution ? (still feels better having the data on my machine
than passing it on)
If that is not doable, then i will give you (privately) access to the
tarball. But I get a headache when thinking of the last solution.

>
> Secondly (which should perhaps be "firstly") -- are you able to debug
> this at all? I'm not sure where to start -- maybe running svnlook
> under strace or something. Or, can you play with the number of files
> in that directory and see how the behavior is affected? If you cut
> the number from 4000 to 2000, is the time between each file is handled
> also cut roughly in half?
well I did a strace run on svnlook (see below). Looks interesting, as I
get all those select timeouts. I _dont_ get those when doing svnlook on
a repo, where i only added the 4000 images which make the problem in the
big repo.

If you want me to run any further tests, just tell me.
BTW: on irc i am "lonestar". I try to be online in svn as much as
possible.

Another thing: yesterday I restarted the svndump, and it didn't freeze
that time. I had to interrupt it after about 6 hours as I went to sleep.
I did some statistics: in 15 minutes i got 51 files dumped. (=3.4 files
per minute).
The biggest image is 370.000 bytes - though only 6 are above 100.000
bytes. The average size is 10.500 bytes.
My machine is an Athlon 1700 XP with 512 Mb Ram and an average IBM 40 GB
IDE HD.

I just added a svnadmin dump trace too:
This one is funny: When i start svndump it work sperfectly for some
time. No timeouts, reasonably fast. But then at some time the select
timeouts occur. And from there on everything is slow.

greetings
Martin

strace -T -tt svnlook tree SVN > out
Output
...
13:35:26.729220 pread(3,
"\253\10\0\0C\312\16\0\335\0\0\0\0\0\0\0\0\0\0\0\225\0\314"..., 4096,
905216) = 4096 <0.000058>
13:35:26.730104 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.998978>
13:35:27.729282 pread(9,
"=\10\0\0\\\202\10\0\205\4\0\0\0\0\0\0\367\4\0\0t\0\300"..., 4096,
4739072) = 4096 <0.000053>
13:35:27.730119 pread(10,
"\265\7\0\0\261~\v\0\246u\0\0\256u\0\0\0\0\0\0\1\0\231\f"..., 4096,
123363328) = 4096 <0.000109>
13:35:27.742957 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.996017>
13:35:28.739221 pread(3,
"\21\2\0\0\201\245\5\0\31\1\0\0\200\0\0\0\201\0\0\0\232"..., 4096,
1150976) = 4096 <0.000058>
13:35:28.740260 pread(10,
"\261\10\0\0M\337\2\0\344t\0\0\0\0\0\0P\271\0\0Y\0p\n\2"..., 4096,
122568704) = 4096 <0.000063>
13:35:28.753468 pread(3,
"@\10\0\0\356\30\v\0\0\1\0\0g\0\0\0h\0\0\0\232\0\374\1\1"..., 4096,
1048576) = 4096 <0.000077>
13:35:28.767650 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.991321>
13:35:29.759222 pread(3,
"\250\10\0\0C\257\17\0\335\1\0\0\0\0\0\0U\2\0\0l\0\354\10"..., 4096,
1953792) = 4096 <0.000052>
13:35:29.759468 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.999563>
13:35:30.759251 pread(3,
"\r\6\0\0\262V\5\0\266\1\0\0\7\0\0\0u\1\0\0Z\0\350\7\1\5"..., 4096,
1794048) = 4096 <0.000059>
13:35:30.760572 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.998465>
13:35:31.759273 pread(10,
"\265\7\0\0\1\364\t\0\16u\0\0\17u\0\0\ru\0\0\1\0\346\17"..., 4096,
122740736) = 4096 <0.000057>
13:35:31.759747 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.999268>
13:35:32.759222 pread(10,
"\265\7\0\0[M\v\0\361t\0\0\362t\0\0\251t\0\0\1\0\346\17"..., 4096,
122621952) = 4096 <0.000058>
13:35:32.771856 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.997150>
13:35:33.769245 pread(3,
"\251\10\0\0\342\276\0\0e\1\0\0\0\0\0\0\335\1\0\0t\0T\10"..., 4096,
1462272) = 4096 <0.000054>
13:35:33.769464 pread(3,
"4\10\0\0\7\347\0\0\227\1\0\0V\1\0\0W\1\0\0d\0\370\6\1\5"..., 4096,
1667072) = 4096 <0.000028>
13:35:33.770102 pread(10,
"?\10\0\0007\373\r\0\310\235\0\0\0\0\0\0\206&\0\0p\0\0\t"..., 4096,
165445632) = 4096 <0.000049>
13:35:33.783575 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.995399>
13:35:34.779225 pread(3,
"q\5\0\0\357%\16\0i\1\0\0\251\1\0\0\252\1\0\0R\0\250\10"..., 4096,
1478656) = 4096 <0.000058>
13:35:34.780759 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.998371>
13:35:35.779391 pread(10,
"\265\7\0\0w,\v\0qu\0\0ru\0\0\362t\0\0\1\0\346\17\0\7g "..., 4096,
123146240) = 4096 <0.000061>
13:35:35.791822 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.997185>
13:35:36.789248 pread(3,
"\314\5\0\0?2\4\0o\1\0\0\260\1\0\0\261\1\0\0R\0\240\10\1"..., 4096,
1503232) = 4096 <0.000061>
13:35:36.790505 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.998487>
13:35:37.789227 pread(10,
"\265\7\0\0\253\302\t\0\21u\0\0Au\0\0\20u\0\0\1\0\346\17"..., 4096,
122753024) = 4096 <0.000054>
13:35:37.802013 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.996968>
13:35:38.799221 pread(3,
"\313\4\0\0_F\3\0V\1\0\0\226\1\0\0\227\1\0\0R\0\250\10\1"..., 4096,
1400832) = 4096 <0.000058>
13:35:38.800765 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.998212>
13:35:39.799221 pread(10,
"\265\7\0\0w,\v\0qu\0\0ru\0\0\362t\0\0\1\0\346\17\0\7g "..., 4096,
123146240) = 4096 <0.000056>
13:35:39.811588 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.997464>
...

strace -T -tt svnadmin dump SVN > out

13:58:41.704981 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.994011>
13:58:42.699233 pread(9,
"\345\6\0\0\301\361\1\0\366\3\0\0\365\3\0\0\367\3\0\0@\0"..., 4096,
4153344) = 4096 <0.000058>
13:58:42.699562 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.999463>
13:58:43.699219 pread(10,
"\261\10\0\0M\337\2\0\344t\0\0\0\0\0\0P\271\0\0Y\0p\n\2"..., 4096,
122568704) = 4096 <0.000058>
13:58:43.699473 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.999563>
13:58:44.699228 pread(10,
"\373\6\0\0\330\205\16\0\301m\0\0/\1\0\0\300m\0\0\232\0"..., 4096,
115085312) = 4096 <0.000060>
13:58:44.699603 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.999464>
13:58:45.699258 pread(10,
"\344\6\0\0\330\320\5\0\255\223\0\0\0\0\0\0\0\0\0\0)\0p"..., 4096,
154849280) = 4096 <0.000058>
13:58:45.699512 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
<0.999515>
13:58:46.699221 pread(10,
"\345\6\0\0u\361\1\0w\236\0\0y\236\0\0\233\236\0\0\254\0"..., 4096,
166162432) = 4096 <0.000057>
13:58:46.699518 pread(9,
"\254\10\0\0\302.\1\0`\3\0\0_\3\0\0a\3\0\0D\0\354\1\1\5"..., 4096,
3538944) = 4096 <0.000041>
13:58:46.699766 write(1, "Prop-content-length: 85\n", 24) = 24
<0.000043>
13:58:46.699937 pread(3,
"\250\10\0\0\362\256\17\0\1\0\0\0\0\0\0\0\0\0\0\0\5\0\260"..., 4096,
4096) = 4096 <0.000038>
13:58:46.700093 pread(3,
"\253\10\0\0QL\17\0\2\0\0\0\0\0\0\0\211\1\0\0\242\0\300"..., 4096, 8192)
= 4096 <0.000028>
13:58:46.700883 pread(10,
"\220\4\0\0\256\242\16\0\307z\0\0\315z\0\0\302z\0\0\1\0"..., 4096,
128741376) = 4096 <0.000038>
13:58:46.701065 pread(10,
"\220\4\0\0\4\324\16\0\265z\0\0\271z\0\0\255z\0\0\1\0\346"..., 4096,
128667648) = 4096 <0.000027>
13:58:46.701248 pread(10,
"\220\4\0\0>&\17\0Bz\0\0Az\0\0Cz\0\0\1\0\346\17\0\7f 7 "..., 4096,
128196608) = 4096 <0.000028>
13:58:46.701463 pread(10,
"\220\4\0\0\316\251\17\0pz\0\0qz\0\0oz\0\0\1\0\346\17\0"..., 4096,
128385024) = 4096 <0.000027>
13:58:46.701621 pread(10,
"\220\4\0\0$\333\17\0mz\0\0nz\0\0\215z\0\0\1\0\346\17\0"..., 4096,
128372736) = 4096 <0.000026>
13:58:46.701765 pread(10,
"\221\4\0\0\34\0\0\0\216z\0\0\215z\0\0\217z\0\0\1\0\346"..., 4096,
128507904) = 4096 <0.000026>
13:58:46.701934 pread(10,
"\221\4\0\0\344A\0\0\227z\0\0\224z\0\0\244z\0\0\1\0\346"..., 4096,
128544768) = 4096 <0.000027>
13:58:46.702117 pread(10,
"\221\4\0\0\36\224\0\0\277z\0\0\275z\0\0\304z\0\0\1\0\346"..., 4096,
128708608) = 4096 <0.000028>

Received on Mon Aug 4 18:02:54 2003

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