Date: Sun, 22 Apr 2007 19:08:56 +0300 From: Stefan Lambrev <cheffo@FreeBSD-BG.org> To: Ivan Voras <ivoras@fer.hr> Cc: freebsd-performance@freebsd.org Subject: Re: apache httpd performance Message-ID: <462B8898.5090306@FreeBSD-BG.org> In-Reply-To: <f0e5lc$u4d$1@sea.gmane.org> References: <462A31A9.5080207@FreeBSD-BG.org> <f0e5lc$u4d$1@sea.gmane.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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 ?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?462B8898.5090306>