svn - but smaller?
Markiyan Kushnir
markiyan.kushnir at gmail.com
Sat Apr 13 11:41:59 UTC 2013
On 13.04.2013 11:29, Markiyan Kushnir wrote:
> The only thing I would like to add -- tree lookup did make a good effect
> on CPU consumption.
>
John,
I'm just curious, did you consider sys/tree.h for tree implementation? I
realize that it wouldn't be well portable to Linux. Any way, did you
have other considerations to use your own tree implementation in svnup?
--
Markiyan.
> --
> Markiyan.
>
>
> On 13.04.2013 10:38, mrboco at gmail.com wrote:
>>> In the previous version (0.61), the process of checking
>>> file names against the list of known files in the
>>> repository was inefficient and most likely accounts for
>>> the slow down you're seeing. I've reimplemented it using
>>> a binary search tree and the lookup phase is no longer a
>>> bottleneck.
>>
>> I'm sorry but 0.62 still locks while fetching from a local repository:
>>
>> last pid: 74701; load averages: 2.24, 2.52,
>> 2.56 up 772+03:32:23 13:19:55
>> 96 processes: 2 running, 94 sleeping
>> CPU: 14.8% user, 0.0% nice, 40.3% system, 0.7% interrupt, 44.2% idle
>> Mem: 1191M Active, 436M Inact, 248M Wired, 76M Cache, 112M Buf, 50M Free
>> Swap: 1024M Total, 232M Used, 792M Free, 22% Inuse
>>
>> PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU
>> COMMAND
>> 30193 root 1 117 0 56220K 9108K CPU1 1 99:16 96.39% svnup
>>
>> The send/receive queues are filled up and not changing over time:
>>
>> root at alpha:~# netstat -an | fgrep -w 3690
>> tcp4 8192 24576 81.30.199.66.3690 81.30.199.66.44473
>> ESTABLISHED
>> tcp4 24576 16384 81.30.199.66.44473 81.30.199.66.3690
>> ESTABLISHED
>> tcp4 0 0 *.3690 *.* LISTEN
>>
>> root at alpha:~# kdump | head -40
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>> 30193 svnup RET write -1 errno 35 Resource temporarily unavailable
>> 30193 svnup CALL write(0x3,0x8843a000,0xd91)
>>
>> I think you should either use blocking IO or catch IO errors. And
>> please consider to set the socket options too.
>>
>> Thanks.
>> _______________________________________________
>> freebsd-stable at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
>> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>>
>
More information about the freebsd-stable
mailing list