From owner-freebsd-stable@FreeBSD.ORG Sat Apr 13 11:41:59 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 9F242389 for ; Sat, 13 Apr 2013 11:41:59 +0000 (UTC) (envelope-from markiyan.kushnir@gmail.com) Received: from mail-ea0-x231.google.com (mail-ea0-x231.google.com [IPv6:2a00:1450:4013:c01::231]) by mx1.freebsd.org (Postfix) with ESMTP id 34A2AF1C for ; Sat, 13 Apr 2013 11:41:59 +0000 (UTC) Received: by mail-ea0-f177.google.com with SMTP id q14so1530812eaj.36 for ; Sat, 13 Apr 2013 04:41:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:message-id:date:from:user-agent:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=4y/1qFj2H7FZ8KAUOj8vLijgj9btisunO2d8Wszg+Vc=; b=Nqn0ncZGSqlYluCpq/tJs1F9gOnuJ9HTRjmmq4yATFEOrko5uhl+cA9D3ifKdjcq5q jYlYH1ZkdbaGDNi4KM9hf87evDF5e80hIFOZ7tfVv6gkoBjvOq3QD2Dl/b+00WuEt2CL juhXHDrWgqEVLfMkwa+U7y/TG9xDEnfTVdjYAqR0fZNTU4LlhqT7+sJ+ZIY5SgT8k9ca 4db276+GL/VEMHMYSSFLEy5d8Jo/NnbXjqs3HiK66rjNRq7yDZcxTDZZVhXlH3NfVBZ5 n1u5wx4UThmsdC/o4MS0QoharsYoFL1H7v7bG6ZfNJaVWMZUuv+a19/g74k+OUyeV6CT /4hQ== X-Received: by 10.14.214.65 with SMTP id b41mr38712995eep.37.1365853318207; Sat, 13 Apr 2013 04:41:58 -0700 (PDT) Received: from mkushnir.zapto.org (221-139-132-95.pool.ukrtel.net. [95.132.139.221]) by mx.google.com with ESMTPS id q5sm15914612eeo.17.2013.04.13.04.41.57 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 13 Apr 2013 04:41:57 -0700 (PDT) Message-ID: <5169447A.6020904@gmail.com> Date: Sat, 13 Apr 2013 14:41:46 +0300 From: Markiyan Kushnir User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:16.0) Gecko/20121119 Thunderbird/16.0.2 MIME-Version: 1.0 To: freebsd-stable@freebsd.org Subject: Re: svn - but smaller? References: <55f7d158-b02d-49f4-8181-8711be8d5647@googlegroups.com> <51691775.3000006@gmail.com> In-Reply-To: <51691775.3000006@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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 11:41:59 -0000 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" >> >