From owner-freebsd-net@FreeBSD.ORG Wed Sep 13 17:27:19 2006 Return-Path: X-Original-To: freebsd-net@freebsd.org Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2C58A16A4A0; Wed, 13 Sep 2006 17:27:19 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1577D43D8E; Wed, 13 Sep 2006 17:27:12 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 0246646C1D; Wed, 13 Sep 2006 13:27:11 -0400 (EDT) Date: Wed, 13 Sep 2006 18:27:11 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Marcelo Gardini do Amaral In-Reply-To: <20060913182019.R50147@fledge.watson.org> Message-ID: <20060913182457.W50147@fledge.watson.org> References: <2a41acea0608301145j7bbed961j33ce903a27d8963d@mail.gmail.com> <20060904130827.GE12975@registro.br> <20060911195521.GD63300@registro.br> <20060913182019.R50147@fledge.watson.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-net@freebsd.org, freebsd-stable@freebsd.org Subject: Re: DNS query performance X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Sep 2006 17:27:19 -0000 On Wed, 13 Sep 2006, Robert Watson wrote: > On Mon, 11 Sep 2006, Marcelo Gardini do Amaral wrote: > >> I would like to discuss a little bit more about UDP performance. I've made >> some tests and the results may have some value here. >> >> In this test is easy to see that there is something different in the >> FreeBSD 6 branch. >> >> I made a benchmark with bind 9.3.2 (without threads support) and nsd 3.0.1 >> (1 server forked) on a HP Proliant Dual AMD Opteron 2.4GHz among FreeBSD >> 4.11, 6.1 and Linux kernel 2.6.15, all of them for i386 systems. I used >> this simple zone file: > > Are you able to boot a 7.x kernel on this box? An as yet un-MFC'd > optimization to the UDP send path is present in the 7.x kernel, suggested by > ISC, which significantly improves threaded BIND9 performance. I've not > benchmarked unthreaded BIND9 with the change. If you want to test > specifically the before/after case for that change, you can find the > reference to sosend_dgram in src/sys/netinet/udp_usrreq.c and swap it to > sosend, which restores the old behavior. The other common optimization advice that you may already have received is to check which time counter FreeBSD has selected. Right now, 6.x/7.x err on the side of accurate over fast. There's been quite a bit of debate about this approach, and it's useful to investigate the issue. You can view and set the current choice by looking at the sysctl kern.timecounter.hardware, and you can see the choices on your hardware by looking at kern.timecounter.choice. Typically, TSC is the fastest, but may suffer from drift as the CPU changes speed (as a result of temperature, power saving, etc). Set it to TSC if it's not already TSC, and see what the effect is. As many event libraries read time stamps frequently to set up sleeping in user space, it can have a substantial performance impact. Robert N M Watson Computer Laboratory University of Cambridge