
jlist9 at gmail
May 2, 2008, 8:58 AM
Views: 565
Permalink
|
|
Performance test data and likely memory leak: 0.54 for Windows
|
|
Since I didn't have much experience with Cherokee, I did some (brutal) apache ab testing last night with 0.54 Windows version. The good news is, Cherokee completed one million static requests and one million scgi dynamic requests in about 3 hours, most successfully. 5 requests failed to connect in each group, I'm not sure about the reason. Two ab commands started at about the same time. see detailed data below. The test also seems to have revealed a memory leak. When the test was done, cherokee process took about 100MB memory (it started with 2.5MB.) I wasn't sure if the leak was from static requests or dynamic requests. So I re-did 10,000 request with a static page, and didn't observe memory leak. In the dynamic page tests, memory usage kept growing, at the speed of around 100 bytes per request. When the load stopped, the memory didn't get released. Not sure if this has also been observed on Linux? The scgi performance was quite impressive. I'm not sure about the details of Cherokee's scgi and fcgi implementation. In my testing, a multi-threaded scgi back-end written in Python was much faster handling concurrent requests than a single-threaded fcgi backend written in a compiled language, when the number of concurrent requests was more than 5. But dealing with continuous but non-concurrent requests, the natively compiled fastcgi takes about 40% of the time of what it takes the scgi Python app to handle a request. This tells me that the Python scgi backend (web.py) is able to cope with pretty heavy traffic, which will be a bit less than half of the ultimate capacity that could be achieved by running a server pool of fastcgi/scgi written in a compiled language. (I'm assuming the overhead of fcgi and scgi are similar, or the difference ignorable.) The test is done on a single-CPU vmware guest OS running on a powerful core 2 dual host. It was taking most CPU time of a core during the test. No other vms or heavy tasks were run during the tests. C:\Internet>ab -n 1000000 -c 1 http://localhost/image/google.html Server Software: Cherokee/0.5.4 Server Hostname: localhost Server Port: 80 Document Path: /image/static.html Document Length: 67859 bytes Concurrency Level: 1 Time taken for tests: 6012.703125 seconds Complete requests: 1000000 Failed requests: 5 (Connect: 5, Length: 0, Exceptions: 0) Write errors: 0 Total transferred: -681476736 bytes HTML transferred: -860476736 bytes Requests per second: 166.31 [#/sec] (mean) Time per request: 6.013 [ms] (mean) Time per request: 6.013 [ms] (mean, across all concurrent requests) Transfer rate: -110.68 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 12.0 0 3015 Processing: 0 2 6.1 0 203 Waiting: 0 0 3.0 0 156 Total: 0 4 13.2 0 3046 Percentage of the requests served within a certain time (ms) 50% 0 66% 0 75% 15 80% 15 90% 15 95% 15 98% 15 99% 15 100% 3046 (longest request) C:\Internet>ab -n 1000000 -c 1 http://localhost/s/scgi/ Benchmarking localhost (be patient) Completed 100000 requests Completed 200000 requests Completed 300000 requests Completed 400000 requests Completed 500000 requests Completed 600000 requests Completed 700000 requests Completed 800000 requests Completed 900000 requests Finished 1000000 requests Server Software: Cherokee/0.5.4 Server Hostname: localhost Server Port: 80 Document Path: /s/scgi/ Document Length: 693 bytes Concurrency Level: 1 Time taken for tests: 8875.62500 seconds Complete requests: 1000000 Failed requests: 5 (Connect: 5, Length: 0, Exceptions: 0) Write errors: 0 Total transferred: 803000000 bytes HTML transferred: 693000000 bytes Requests per second: 112.68 [#/sec] (mean) Time per request: 8.875 [ms] (mean) Time per request: 8.875 [ms] (mean, across all concurrent requests) Transfer rate: 88.36 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 6.9 0 2984 Processing: 0 8 8.1 15 281 Waiting: 0 7 8.0 0 281 Total: 0 8 10.5 15 3031 Percentage of the requests served within a certain time (ms) 50% 15 66% 15 75% 15 80% 15 90% 15 95% 15 98% 15 99% 31 100% 3031 (longest request) _______________________________________________ Cherokee mailing list Cherokee[at]cherokee-project.com http://cherokee-project.com/cgi-bin/mailman/listinfo/cherokee
|