On Wed, Apr 22, 2009 at 12:01:04PM +0800, Weibin Yao wrote:
> > Could you add
>
> > open_file_cache max=1000 inactive=20s;
> > open_file_cache_valid 30s;
> > open_file_cache_min_uses 2;
> > open_file_cache_errors on;
>
> > and run just
>
> > ab.exe -k -n 10000 -c 1
>
> > to see if CreateFile() adds noticeable overhead ?
>
> Then I increased the concurrency:
>
> ab.exe -k -n 10000 -c 500
> nothing error
>
> ab.exe -k -n 10000 -c 1000
> Error.log: many lines of "2009/04/22 11:14:15 [alert] 2744#448: *951 WSARecv() failed (10053: Your software in this host abandons this connection.) while keepalive, client: 127.0.0.1, server: 0.0.0.0:80"
>
> (note: The error.log contains some Chinese characters after error number 10053 because of my OS's location. I translated these into English, maybe not accurate.)
I wanted to log this in English only. Currently I use
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT)
for FormatMessage(), probably, I should use
MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT)
> My testing index.html is 151 bytes. Maybe it's too small. Then I used a test.html with size of 1K bytes. The result changed:
>
> ab.exe -k -n 10000 -c 50
> nothing error
>
> ab.exe -k -n 10000 -c 100
> nothing error
>
> ab.exe -k -n 10000 -c 200
> Error.log: many lines of "2009/04/22 11:34:22 [alert] 2744#448: *4806 WSARecv() failed (10053:Your software in this host abandons this connection.) while keepalive, client: 127.0.0.1, server: 0.0.0.0:80"
>
> Then I tested a 100k file:
>
> ab.exe -k -n 10000 -c 5
> nothing error
>
> ab.exe -k -n 10000 -c 10
> nothing error
>
> ab.exe -k -n 10000 -c 20
> nothing error
>
> ab.exe -k -n 10000 -c 30
> Error.log:
> there are two kinds of errors:
> 1. 2009/04/22 11:45:50 [alert] 2744#448: *4996 WSASend() failed (10053:Your software in this host abandons this connection.) while sending response to client, client: 127.0.0.1, server: localhost, request: "GET /test1.html HTTP/1.0", host: "127.0.0.1"
> 2. 2009/04/22 11:45:50 [alert] 2744#448: *4992 WSARecv() failed (10053:Your software in this host abandons this connection.) while keepalive, client: 127.0.0.1, server: 0.0.0.0:80
Probably, this is ab-specific errors: it opens several connections, and
when number of requests are reached, just closes superfluous connections.
Unix does not returns error in this case or may return EPIPE.
It seems that Windows returns WSAECONNABORTED in this case.
I will lower its level to [info].
--
Igor Sysoev
http://sysoev.ru/en/