From owner-freebsd-performance@FreeBSD.ORG Sun Apr 22 16:09:00 2007 Return-Path: X-Original-To: freebsd-performance@freebsd.org Delivered-To: freebsd-performance@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5626816A400 for ; Sun, 22 Apr 2007 16:09:00 +0000 (UTC) (envelope-from cheffo@FreeBSD-BG.org) Received: from blah.sun-fish.com (blah.sun-fish.com [217.18.249.150]) by mx1.freebsd.org (Postfix) with ESMTP id CA6B613C468 for ; Sun, 22 Apr 2007 16:08:59 +0000 (UTC) (envelope-from cheffo@FreeBSD-BG.org) Received: from blah.sun-fish.com (localhost [127.0.0.1]) by blah.sun-fish.com (Postfix) with ESMTP id 6F64F1B10EEC; Sun, 22 Apr 2007 18:08:58 +0200 (CEST) Received: from [10.1.1.2] (unknown [192.168.25.6]) by blah.sun-fish.com (Postfix) with ESMTP id 68E991B10EE0; Sun, 22 Apr 2007 18:08:58 +0200 (CEST) Message-ID: <462B8898.5090306@FreeBSD-BG.org> Date: Sun, 22 Apr 2007 19:08:56 +0300 From: Stefan Lambrev User-Agent: Thunderbird 1.5.0.10 (Windows/20070221) MIME-Version: 1.0 To: Ivan Voras References: <462A31A9.5080207@FreeBSD-BG.org> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP on BLAH Cc: freebsd-performance@freebsd.org Subject: Re: apache httpd 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: Sun, 22 Apr 2007 16:09:00 -0000 Hi, Ivan Voras wrote: > Cheffo wrote: > > >> What else I can change/test to improve performance? >> > > First you'll have to give more info about the hardware on both systems, > and the way you benchmarked them (e.g. did you benchmark over ethernet > or from the same machine?). There are also a bunch of things that may > make apache go faster/slower, for example DNS resolving for the logs, > rewrite rules, etc. - you should test with (as much as they can be) > identical configurations. > I'm using my laptop to run ab in both test, and 2 totally different servers :) That's why I do not pretend that the benchmark is done the right way. The linux host is with pentium 4 single core processor, The freebsd host is amd64 athlon 3200+ (2GHz) - single core too Both servers share same dns server(s), so I do not think that the DNS can be issue. I'm using 3com network card - 100mbps - xl. I'll test with accf_http and will report back. If there is a problem (as I'm still not sure that there is) I'll make more accurate benchmark and will try to find where is the problem (with your help) :) > On a slow-ish 2 CPU Pentium3 server, over gigabit network (remote > client), I get: > > Server Software: Apache/2.2.3 > Server Port: 80 > > Document Path: /file.txt > Document Length: 9500 bytes > > Concurrency Level: 100 > Time taken for tests: 27.300259 seconds > Complete requests: 50000 > Failed requests: 0 > Write errors: 0 > Total transferred: 489226808 bytes > HTML transferred: 475025956 bytes > Requests per second: 1831.48 [#/sec] (mean) > Time per request: 54.601 [ms] (mean) > Time per request: 0.546 [ms] (mean, across all concurrent requests) > Transfer rate: 17500.20 [Kbytes/sec] received > > On the same server, ab running locally, I get: > > Server Software: Apache/2.2.3 > Server Port: 80 > > Document Path: /file.txt > Document Length: 9500 bytes > > Concurrency Level: 100 > Time taken for tests: 30.8557 seconds > Complete requests: 29194 > Failed requests: 6 > (Connect: 6, Length: 0, Exceptions: 0) > Write errors: 0 > Total transferred: 286117856 bytes > HTML transferred: 277811424 bytes > Requests per second: 972.86 [#/sec] (mean) > Time per request: 102.790 [ms] (mean) > Time per request: 1.028 [ms] (mean, across all concurrent requests) > Transfer rate: 9311.04 [Kbytes/sec] received > > (Yes, this is a different version of apache than yours, but I'm > illustrating a point :) ) > > Some more data points: > > - Remote client, apache, using keepalives: > Requests per second: 2891.61 [#/sec] (mean) > Time per request: 34.583 [ms] (mean) > Time per request: 0.346 [ms] (mean, across all concurrent requests) > Transfer rate: 27729.00 [Kbytes/sec] received > > - Remote client, using thttpd instead of apache (keepalives have no > influence here): > Requests per second: 3728.68 [#/sec] (mean) > Time per request: 26.819 [ms] (mean) > Time per request: 0.268 [ms] (mean, across all concurrent requests) > Transfer rate: 35499.92 [Kbytes/sec] received > > Regarding this last one: It seems that FreeBSD really benefits from > using 2 CPUs here. thttpd is a single-threaded async server, but the > load on the machine shows cca 10% idle. Thttpd gets ~~45%, swi:net gets > 45%, irq20:bge0 gets 20%, syslogd gets 5% and the rest goes where top > can't follow. It looks like ipfw might be one of the limiting factors > here (I use dynamic rules and the log shows ipfw discarding packets that > look valid). > > > Can you make this test with default /manual/ alias instead of file.txt, so we can compare results ?