From owner-freebsd-performance@FreeBSD.ORG Tue Feb 5 21:16:37 2008 Return-Path: Delivered-To: freebsd-performance@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BE51616A419; Tue, 5 Feb 2008 21:16:37 +0000 (UTC) (envelope-from kris@FreeBSD.org) Received: from weak.local (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 902DC13C4E8; Tue, 5 Feb 2008 21:16:35 +0000 (UTC) (envelope-from kris@FreeBSD.org) Message-ID: <47A8D233.8020506@FreeBSD.org> Date: Tue, 05 Feb 2008 22:16:35 +0100 From: Kris Kennaway User-Agent: Thunderbird 2.0.0.9 (Macintosh/20071031) MIME-Version: 1.0 To: Stefan Lambrev References: <4794E6CC.1050107@moneybookers.com> <47A0B023.5020401@moneybookers.com> <47A3074A.3040409@moneybookers.com> <47A72EAB.6070602@moneybookers.com> <20080204182945.GA49276@heff.fud.org.nz> <47A780C0.2060201@moneybookers.com> <47A799A6.3070502@moneybookers.com> <47A84751.8020109@moneybookers.com> In-Reply-To: <47A84751.8020109@moneybookers.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-performance@freebsd.org, Andrew Thompson Subject: Re: network performance X-BeenThere: freebsd-performance@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Performance/tuning List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Feb 2008 21:16:37 -0000 Stefan Lambrev wrote: >>>> Thanks for investigating this. One thing to note is that ip flows from >>>> the same connection always go down the same interface, this is because >>>> Ethernet is not allowed to reorder frames. The hash uses >>>> src-mac, dst-mac, src-ip and dst-ip (see lagg_hashmbuf), make sure when >>>> performance testing that your traffic varies in these values. Adding >>>> tcp/udp ports to the hashing may help. >>>> >>> The traffic, that I generate is with random/spoofed src part, so it >>> is split between interfaces for sure :) >>> >>> Here you can find results when under load from hwpmc and lock_profiling: >>> http://89.186.204.158/lock_profiling-lagg.txt OK, this shows the following major problems: 39 22375065 1500649 5690741 3 0 119007 712359 /usr/src/sys/net/route.c:147 (sleep mutex:radix node head) 21 3012732 1905704 1896914 1 1 14102 496427 /usr/src/sys/netinet/ip_output.c:594 (sleep mutex:rtentry) 22 120 2073128 47 2 44109 0 3 /usr/src/sys/modules/if_lagg/../../net/ieee8023ad_lacp.c:503 (rw:if_lagg rwlock) 39 17857439 4262576 5690740 3 0 95072 1484738 /usr/src/sys/net/route.c:197 (sleep mutex:rtentry) It looks like the if_lagg one has been fixed already in 8.0, it could probably be backported but requires some other infrastructure that might not be in 7.0. The others are to do with concurrent transmission of packets (it is doing silly things with route lookups). kmacy has a WIP that fixes this. If you are interested in testing an 8.0 kernel with the fixes let me know. >>> http://89.186.204.158/lagg-gprof.txt >>> >> http://89.186.204.158/lagg2-gprof.txt I forget this file :) >> > I found that MD5Transform aways uses ~14% (with rx/txcsum enabled or > disabled). Yeah, these don't have anything to do with MD5. > And when using without lagg MD5Transform pick up to 20% of the time. > Is this normal? It is probably from the syncache. You could disable it (net.inet.tcp.syncookies_only) if you don't need strong protection against SYN flooding. Kris