Date: Sat, 13 Apr 2013 14:41:46 +0300 From: Markiyan Kushnir <markiyan.kushnir@gmail.com> To: freebsd-stable@freebsd.org Subject: Re: svn - but smaller? Message-ID: <5169447A.6020904@gmail.com> In-Reply-To: <51691775.3000006@gmail.com> References: <fa.0Q2pfj5Jmjm1idzwdMPkrOt0t8A@ifi.uio.no> <fa.lTTvk10jwq3Nl28YD2IBfpQxBGI@ifi.uio.no> <fa.Rs4WtqCp5UfG0JyUkY%2Bnss350io@ifi.uio.no> <fa.3NNQaEWt4tIY3iEnRvv/HGuDLkM@ifi.uio.no> <fa./fcM49vv3rrz9Lw3AjcNzSsh5Oo@ifi.uio.no> <fa.8oTMOe04EXV2vODtg0b08yWtXQw@ifi.uio.no> <55f7d158-b02d-49f4-8181-8711be8d5647@googlegroups.com> <51691775.3000006@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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@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@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@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@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-stable >> To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org" >> >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5169447A.6020904>