From owner-freebsd-stable@FreeBSD.ORG Sat Apr 13 07:38:08 2013 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 10D38C62 for ; Sat, 13 Apr 2013 07:38:08 +0000 (UTC) (envelope-from mrboco@gmail.com) Received: from mail-da0-x23d.google.com (mail-da0-x23d.google.com [IPv6:2607:f8b0:400e:c00::23d]) by mx1.freebsd.org (Postfix) with ESMTP id E70E43EA for ; Sat, 13 Apr 2013 07:38:07 +0000 (UTC) Received: by mail-da0-f61.google.com with SMTP id p5so971249dak.16 for ; Sat, 13 Apr 2013 00:38:07 -0700 (PDT) X-Received: by 10.49.2.170 with SMTP id 10mr1149264qev.40.1365838687323; Sat, 13 Apr 2013 00:38:07 -0700 (PDT) Path: glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: fa.freebsd.stable Date: Sat, 13 Apr 2013 00:38:07 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=81.30.199.254; posting-account=sMcwMQoAAAAdu1V-A3R0KelfgYVS8M25 NNTP-Posting-Host: 81.30.199.254 References: User-Agent: G2/1.0 X-Google-Web-Client: true X-Google-IP: 81.30.199.254 MIME-Version: 1.0 Message-ID: <55f7d158-b02d-49f4-8181-8711be8d5647@googlegroups.com> Subject: Re: svn - but smaller? From: mrboco@gmail.com To: fa.freebsd.stable@googlegroups.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-stable@freebsd.org X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Apr 2013 07:38:08 -0000 > In the previous version (0.61), the process of checking=20 > file names against the list of known files in the=20 > repository was inefficient and most likely accounts for=20 > the slow down you're seeing.=A0 I've reimplemented it using=20 > a binary search tree and the lookup phase is no longer a=20 > 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 ESTABLISH= ED tcp4 24576 16384 81.30.199.66.44473 81.30.199.66.3690 ESTABLISH= ED 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 co= nsider to set the socket options too. Thanks.