From owner-freebsd-net@FreeBSD.ORG Fri Sep 7 18:34:00 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 26BA716A41A for ; Fri, 7 Sep 2007 18:34:00 +0000 (UTC) (envelope-from kirc.gover@yahoo.com.au) Received: from n6a.bullet.mail.re3.yahoo.com (n6a.bullet.mail.re3.yahoo.com [68.142.236.44]) by mx1.freebsd.org (Postfix) with SMTP id C16E213C480 for ; Fri, 7 Sep 2007 18:33:59 +0000 (UTC) (envelope-from kirc.gover@yahoo.com.au) Received: from [68.142.230.29] by n6.bullet.re3.yahoo.com with NNFMP; 07 Sep 2007 18:33:59 -0000 Received: from [66.196.101.132] by t2.bullet.re2.yahoo.com with NNFMP; 07 Sep 2007 18:33:59 -0000 Received: from [127.0.0.1] by rrr3.mail.re1.yahoo.com with NNFMP; 07 Sep 2007 18:33:59 -0000 X-Yahoo-Newman-Property: ymail-5 X-Yahoo-Newman-Id: 203595.18333.bm@rrr3.mail.re1.yahoo.com Received: (qmail 21959 invoked by uid 60001); 7 Sep 2007 17:57:11 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com.au; h=X-YMail-OSG:Received:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID; b=Q98yxxRM+sZdzudcTCzh4evJNUO7St63u31bPlGpQNnKlgivmyV9SyNST8UXOO8VVeRk8bkdLyBXYV8qPpZiueRxcSevXEQDROoA5t/AQXXsFGnCTueqW+zwPmyW+HCT6Xw+CKknzlPVVYBHE0STLdpG5LO/WmYk3Awg+j5za9A=; X-YMail-OSG: Kui_4joVM1nYj3nOT11JIIofozcfO_dHXgrgZ8Af Received: from [125.60.235.213] by web44802.mail.sp1.yahoo.com via HTTP; Sat, 08 Sep 2007 03:57:11 EST Date: Sat, 8 Sep 2007 03:57:11 +1000 (EST) From: Kirc Gover To: Gary Palmer In-Reply-To: <20070906220345.GB8194@in-addr.com> MIME-Version: 1.0 Message-ID: <517436.12027.qm@web44802.mail.sp1.yahoo.com> Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-net@freebsd.org Subject: Re: OS choice for an edge router 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: Fri, 07 Sep 2007 18:34:00 -0000 Hi Gary, Thanks for your response. Yes, the bus architecture would be either PCI-X or PCI-Express. Host CPU would be a high performance multi-core such as Xeon and NICs would be Intel. One of my concern is on the native forwarding capability of FreeBSD OS and the execution of critical userland processes. I have experience before that a FreeBSD box configured as router appears to slow down the userland processes when the traffic load is high. I have verified this lately on 6.1, running on Athlon64 with 1G NIC cards with PF and ALTQ (queuing) enabled. I'm not so sure if this is caused by PF or ALTQ. Looking at the processes using top, it could see that "swi(x) net" process is almost as near 100% cpu utilization. At this state, the box can still forward traffic (not sure yet if the was a change in throughput) but I could notice the userland processes to be very slow, like invoking any command from the shell (e.g. ls) will take so long to be executed and completed. Is this a know limitation or bug? Thanks a lot. Kirc Gary Palmer wrote: On Fri, Sep 07, 2007 at 03:06:54AM +1000, Kirc Gover wrote: > We are in the stage of planning and research for a commercial development of an edge router that will be based mostly on OpenSource software. I would like to solicit for information and recommendation if FreeBSD is a suitable OS. The router is expected to withstand forwarding of sustained traffic from 10Mbps to 1Gbps and maybe more than that. Are there any known limitations of FreeBSD in terms of architecture and performance? Can I just take out a FreeBSD as is and put it with the hardware without any specific or major refinements in its code? I'm very much concerned with its capability in forwarding heavy sustained traffic. Packet loss should be at minimum and critical userland processes should working normally even under heavy load. Are there any known specific limitations of FreeBSD? I have browsed through the archives and found a lot of hangups, deadlocks and freeze issues. What is the usual or minimum hardware requirement? Is soekris box enough, or dual core or ASIC > based platforms? I'm aware that there are so many FreeBSD based routers and network based devices in the market. Is this a way to go over realtime and embedded OS such as VxWorks and others (mostly commercial) without putting the licensing cost in picture? I really appreciate any help, suggestions and recommendations. More power to FreeBSD! Kirc, There are two factors to consider: - bus architecture (PCI, PCI-X, PCI-Express, etc) will dictate the maximum throughput in bits/sec. Allow some overhead for bus arbitration activities, and remember that the packet crosses the bus twice, once on the inbound leg and once on the outbound leg. - Host CPU (and perhaps to a limited extent the interface cards used) will dictate the packets per second (PPS) Most commercial routers run out of packets per second (in real-world situations, not lab mockups) long before the theoretical maximum throughput is achieved. Thinks like ICMP ping packets and TCP RST packets are small (less than 100 bytes usually) but normally take as much CPU to process & route as a 1500 byte (or larger) packet. The more you put in the processing path (e.g. packet filters, complex routing tables) the more you reduce the PPS. Gary --------------------------------- Sick of deleting your inbox? Yahoo!7 Mail has free unlimited storage. Get it now.