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, mrb...@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-unsubscr...@freebsd.org"



_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to