Hi Alvaro,

Here is the output I get for: AC_SYS_LARGEFILE

checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for _LARGE_FILES value needed for large files... no

I added the following in macro.h(line 219) to go around the issue:

#ifndef _FILE_OFFSET_BITS
# define _FILE_OFFSET_BITS 64
#endif

Also, finally I stressed a little bit cherokee on Tiger to try to see if it was stable by running:
$ab -c 10 -t 30 -k http://localhost:8181/

Server Software:        Cherokee/0.4.27
Server Hostname:        localhost
Server Port:            8181

Document Path:          /
Document Length:        1456 bytes

Concurrency Level:      10
Time taken for tests:   16.061 seconds
Complete requests:      50000
Failed requests:        0
Broken pipe errors:     0
Keep-Alive requests:    49911
Total transferred:      84255699 bytes
HTML transferred:       72807280 bytes
Requests per second:    3113.13 [#/sec] (mean)
Time per request:       3.21 [ms] (mean)
Time per request:       0.32 [ms] (mean, across all concurrent requests)
Transfer rate:          5245.98 [Kbytes/sec] received

The good news is that the numbers are pretty sweet even if just synthetic. (btw this is on a 7450 PPC G4 @ 1.67Ghz)

I got the following output from the console where cherokee was launched:
Cherokee Web Server 0.4.27: Listening on port 8181, TLS disabled, IPv6 disable
using kqueue, 12288 fds limit, 5 threads, 2457 fds in each
FIFO scheduling policy
fdpoll-kqueue.c/171: ERROR: kevent: Bad file descriptor
fdpoll-kqueue.c/171: ERROR: kevent: Bad file descriptor
fdpoll-kqueue.c/171: ERROR: kevent: Bad file descriptor
fdpoll-kqueue.c/171: ERROR: kevent: No such file or directory
fdpoll-kqueue.c/171: ERROR: kevent: Bad file descriptor
fdpoll-kqueue.c/171: ERROR: kevent: Bad file descriptor
fdpoll-kqueue.c/171: ERROR: kevent: Bad file descriptor
fdpoll-kqueue.c/171: ERROR: kevent: Bad file descriptor
fdpoll-kqueue.c/171: ERROR: kevent: Bad file descriptor
fdpoll-kqueue.c/171: ERROR: kevent: Bad file descriptor

I had never seen the "no such file or directory" before though. Marko, did you see this one as well?wwww

Now, another good test was to compile will poll support instead of kqueue, and the results are actually much better! Same test on the same machine returns:

Server Software:        Cherokee/0.4.27
Server Hostname:        localhost
Server Port:            8181

Document Path:          /
Document Length:        1456 bytes

Concurrency Level:      10
Time taken for tests:   10.130 seconds
Complete requests:      50000
Failed requests:        0
Broken pipe errors:     0
Keep-Alive requests:    49912
Total transferred:      84257384 bytes
HTML transferred:       72808736 bytes
Requests per second:    4935.83 [#/sec] (mean)
Time per request:       2.03 [ms] (mean)
Time per request:       0.20 [ms] (mean, across all concurrent requests)
Transfer rate:          8317.61 [Kbytes/sec] received

Wow! it went from ~3000 to 5000 req/sec I would have thought kqueue would be better performing than poll. Maybe the error message we are getting above is hurting performance... Or it is maybe an incoherent behavior in OS 10.4 that even though not clearly acknowledge by Apple, has been witnessed by several other open source projects using kqueue. Oh well, we'll see, it looks like OS 10.4.3 is right around the corner.

Anyway, Alo, I think that if we disable kqueue on OS X for now, cherokee is looking quite stable and showing good performance. I attached below a crude result from apache on OS X on the same machine, same page requested (prefork).

Actually this may be jumping to a different topic, I think it would be nice if you defined some standard benchmarking tests to run on cherokee so that after each new release those exact same test could be run on various platforms and against the other mainstream servers (apache, lighttpd, etc..) to make sure that cherokee's main feature (performance and scalibility) is maintained throughout new releases.

Later,

Sébastien

Apache test results:
Server Software:        Apache/2.0.55
Server Hostname:        localhost
Server Port:            80

Document Path:          /
Document Length:        1456 bytes

Concurrency Level:      10
Time taken for tests:   30.007 seconds
Complete requests:      44556
Failed requests:        0
Broken pipe errors:     0
Keep-Alive requests:    44131
Total transferred:      79619854 bytes
HTML transferred:       64888096 bytes
Requests per second:    1484.85 [#/sec] (mean)
Time per request:       6.73 [ms] (mean)
Time per request:       0.67 [ms] (mean, across all concurrent requests)
Transfer rate:          2653.38 [Kbytes/sec] received



_______________________________________________
Cherokee mailing list
[email protected]
http://www.alobbs.com/cgi-bin/mailman/listinfo/cherokee

Reply via email to