On 2013/01/21, at 22:17, MATSUMOTO Ryosuke <matsu1...@gmail.com> wrote:
> On 2013/01/21, at 22:03, Daniel Gruno <rum...@cord.dk> wrote: > >> On 01/21/2013 01:59 PM, 松本 亮介 wrote: >>> Hi Daniel, >>> >>> I tested benchmark of mod_mruby. >>> >>> test case are: <snip> >> >> My main concern here is; is it thread-safe (or even thread-aware)? >> Most people will be using 2.4 with the event MPM, which is threaded, not >> the prefork MPM. I have no problems doing concurrency on the prefork >> MPM, it's with the worker/event MPM that things start to go wrong. >> > > mod_mruby is very fast in the prefork MPM, but is not thread-safe. > I try to implement thread-safe to mod_mruby. It's challenging!! > > Thank you for your reply. > > With regards, > Ryosuke. > Hi Daniel, I have implemented thread-safe to mod_mruby. https://github.com/matsumoto-r/mod_mruby So, mod_mruby work fine on worker and event MPM. You can try this before ApacheCon. I try it out again, and get some performance of mod_mruby. 1. benchmark on event MPM $ ab -c 100 -n 100000 http://127.0.0.1/hello.mrb This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright 2006 The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient) Completed 10000 requests Completed 20000 requests Completed 30000 requests Completed 40000 requests Completed 50000 requests Completed 60000 requests Completed 70000 requests Completed 80000 requests Completed 90000 requests Finished 100000 requests Server Software: Apache/2.4.3 Server Hostname: 127.0.0.1 Server Port: 80 Document Path: /hello.mrb Document Length: 19 bytes Concurrency Level: 100 Time taken for tests: 7.529994 seconds Complete requests: 100000 Failed requests: 0 Write errors: 0 Total transferred: 16900000 bytes HTML transferred: 1900000 bytes Requests per second: 13280.22 [#/sec] (mean) Time per request: 7.530 [ms] (mean) Time per request: 0.075 [ms] (mean, across all concurrent requests) Transfer rate: 2191.64 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 3 Processing: 1 6 1.4 7 12 Waiting: 1 6 1.4 7 12 Total: 1 6 1.4 7 15 Percentage of the requests served within a certain time (ms) 50% 7 66% 7 75% 7 80% 7 90% 9 95% 9 98% 9 99% 10 100% 15 (longest request) 2. benchmark on worker MPM $ ab -c 100 -n 100000 http://127.0.0.1/hello.mrb This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright 2006 The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient) Completed 10000 requests Completed 20000 requests Completed 30000 requests Completed 40000 requests Completed 50000 requests Completed 60000 requests Completed 70000 requests Completed 80000 requests Completed 90000 requests Finished 100000 requests Server Software: Apache/2.4.3 Server Hostname: 127.0.0.1 Server Port: 80 Document Path: /hello.mrb Document Length: 19 bytes Concurrency Level: 100 Time taken for tests: 9.578192 seconds Complete requests: 100000 Failed requests: 0 Write errors: 0 Total transferred: 16902873 bytes HTML transferred: 1900323 bytes Requests per second: 10440.38 [#/sec] (mean) Time per request: 9.578 [ms] (mean) Time per request: 0.096 [ms] (mean, across all concurrent requests) Transfer rate: 1723.29 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 0.9 1 4 Processing: 1 8 0.9 8 29 Waiting: 0 3 1.2 3 29 Total: 1 9 1.2 9 29 Percentage of the requests served within a certain time (ms) 50% 9 66% 10 75% 10 80% 10 90% 10 95% 11 98% 11 99% 11 100% 29 (longest request)