Re: mod_mruby to provide an alternative to mod_lua
On 2013/01/21, at 22:17, MATSUMOTO Ryosuke wrote: > On 2013/01/21, at 22:03, Daniel Gruno wrote: > >> On 01/21/2013 01:59 PM, 松本 亮介 wrote: >>> Hi Daniel, >>> >>> I tested benchmark of mod_mruby. >>> >>> test case are: >> >> 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 10 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 1 requests Completed 2 requests Completed 3 requests Completed 4 requests Completed 5 requests Completed 6 requests Completed 7 requests Completed 8 requests Completed 9 requests Finished 10 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: 10 Failed requests:0 Write errors: 0 Total transferred: 1690 bytes HTML transferred: 190 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:00 0.0 0 3 Processing: 16 1.4 7 12 Waiting:16 1.4 7 12 Total: 16 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 10 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 1 requests Completed 2 requests Completed 3 requests Completed 4 requests Completed 5 requests Completed 6 requests Completed 7 requests Completed 8 requests Completed 9 requests Finished 10 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: 10 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:01 0.9 1 4 Processing: 18 0.9 8 29 Waiting:03 1.2 3 29 Total: 19 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)
Re: mod_mruby to provide an alternative to mod_lua
On 2013/01/21, at 22:03, Daniel Gruno wrote: > On 01/21/2013 01:59 PM, 松本 亮介 wrote: >> Hi Daniel, >> >> I tested benchmark of mod_mruby. >> >> test case are: > > 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.
Re: mod_mruby to provide an alternative to mod_lua
On 01/21/2013 01:59 PM, 松本 亮介 wrote: > Hi Daniel, > > I tested benchmark of mod_mruby. > > test case are: 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. With regards, Daniel.
Re: mod_mruby to provide an alternative to mod_lua
Hi Daniel, I tested benchmark of mod_mruby. test case are: - test case 1 mod_mruby inline code into https.conf mod_mruby need not fopen() - test case 2 run mod_mruby scripts file per requests mod_mruby need fopen() and fclose() per requests - test environment OS: Linux version 2.6.18-308.16.1.el5PAE Apache: Apache 2.4.3 MPM: prefork mod_mruby: Current version CPU: Intel(R) Xeon(R) CPU X5355 @ 2.66GHz Mem: 8GB -- MPM settings StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 250 MaxConnectionsPerChild 0 -- mod_mruby settings LoadModule mruby_module modules/mod_mruby.so Addhandler mruby-script .mrb sethandler mruby-native-script mrubyHandlerCode "Apache.rputs 'hello mod_mruby world'" -- test case 1 (not open mruby file) $ curl http://127.0.0.1/mruby hello mod_mruby world $ ab -c 100 -n 10 http://127.0.0.1/mruby 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 1 requests Completed 2 requests Completed 3 requests Completed 4 requests Completed 5 requests Completed 6 requests Completed 7 requests Completed 8 requests Completed 9 requests Finished 10 requests Server Software:Apache/2.4.3 Server Hostname:127.0.0.1 Server Port:80 Document Path: /mruby Document Length:21 bytes Concurrency Level: 100 Time taken for tests: 6.859518 seconds Complete requests: 10 Failed requests:0 Write errors: 0 Total transferred: 17103420 bytes HTML transferred: 2100420 bytes Requests per second:14578.28 [#/sec] (mean) Time per request: 6.860 [ms] (mean) Time per request: 0.069 [ms] (mean, across all concurrent requests) Transfer rate: 2434.86 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect:00 0.5 0 5 Processing: 16 1.0 6 10 Waiting:04 1.8 5 8 Total: 16 1.1 6 12 Percentage of the requests served within a certain time (ms) 50% 6 66% 7 75% 7 80% 7 90% 8 95% 8 98% 8 99% 9 100% 12 (longest request) -- test case 2 (open mruby file) $ curl http://127.0.0.1/hello.mrb hello mruby world!! $ ab -c 100 -n 10 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 1 requests Completed 2 requests Completed 3 requests Completed 4 requests Completed 5 requests Completed 6 requests Completed 7 requests Completed 8 requests Completed 9 requests Finished 10 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: 8.106790 seconds Complete requests: 10 Failed requests:0 Write errors: 0 Total transferred: 16900676 bytes HTML transferred: 1900076 bytes Requests per second:12335.34 [#/sec] (mean) Time per request: 8.107 [ms] (mean) Time per request: 0.081 [ms] (mean, across all concurrent requests) Transfer rate: 2035.82 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect:00 0.7 0 7 Processing: 17 5.8 7 389 Waiting:05 6.0 6 388 Total: 17 5.9 7 391 Percentage of the requests served within a certain time (ms) 50% 7 66% 8 75% 8 80% 8 90% 9 95% 9 98% 10 99% 10 100%391 (longest request) -- refs (ab to static contens like index.html) $ curl http://127.0.0.1/index.html It works! $ ab -c 100 -n 10 http://127.0.0.1/index.html 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 1 requests Completed 2 requests Completed 3 requests Completed 4 requests Completed 5 requests Completed 6 requests Completed 7 requests Completed 8 requests Completed 9 requests Finished 10 requests Server Software:Apache/2.4.3 Server Hostname:127.0.0.1 Server Port:80 Document Path: /index.html Document Length:
Re: mod_mruby to provide an alternative to mod_lua
On 2013/01/21, at 19:03, Daniel Gruno wrote: > On 01/21/2013 07:32 AM, 松本 亮介 wrote: >> Hi Daniel. >> >> Thank you for your comment. >> >>> I have tried to compile and install mod_mruby on my own machine to test >>> it, but there are too many compiler errors for it to work :( In >>> particular, you have a lot of declarations after statements in your >>> code, which is not C90 compliant, and needs fixing. There are also some >> >> Did you built mruby? If you don't build murky, you try to build by bellow >> commands. >> >> - mruby and mod_mruby build >> git clone git://github.com/matsumoto-r/mod_mruby.git >> cd mod_mruby >> git submodule init >> git submodule update >> cd murby >> rake >> cd .. >> ./configure --with-apxs=/usr/local/apache/bin/apxs >> --with-apachectl=/usr/local/apache/bin/apachectl >> make >> make install >> >> - mod_mruby settings >> cp -p test/test.mrb /usr/local/apache/htdocs/. >> vi /usr/local/apache/conf/httpd.con >> (snip) >> LoadModule mruby_module modules/mod_mruby.so >> AddHandler mruby-script .mrb >> (snip) >> /usr/local/apache/bin/apachectl start >> >> - mod_mruby test >> http://youraddress/test.mrb >> > > Hi again, > > I did manage to finally get mod_mruby running on my test server, after a > lot of tweaking of your source code. In general, you should always > compile your development modules using _maintainer mode_. This can be > achieved when you configure the httpd source by running ./configure > --enable-maintainer-mode. This should also make apxs run using > maintainer mode, which will alert you to anything about the code which > doesn't sit right with httpd and the standards we have laid out. Thank you for your idea. I try to implement it. > > As for how the module runs, I'll include mod_mruby in my talk a bit, > showing how mod_lua compares to it as well as mod_php and mod_perl on > httpd 2.4 (yes, mod_perl can be built for 2.4 ;) ). > > While it shows a good performance - considering Ruby is generally a slow > language - it does have serious performance issues once you start upping > the concurrency on 2.4. At only 30 concurrent clients, I am getting a > lot of disconnects and segmentation faults from mod_mruby, making it > plummet down to 150 requests per second for a simple hello world script, > and at 500 concurrent clients, it's as low as 50 requests per second, > possibly because it crashes the server, which then has to re-spawn new > workers all the time. I've uploaded a log of GDB at > http://apaste.info/dsFz which you can possibly use to figure out why > it's behaving like it does. There also seems to be a lot of other > exceptions raised when just calling it with 1 client (mrb_exc_raise). Sorry about that. Your apache mpm is worker, but now mod_mruby work properly on prefork mpm. In my future plans, mod_mruby will support thread model like event or worker mpm. I'm studying thread models to support event_mpm. Thank you for GDB log and I refer to it. I have checked mod_mruby which work stable on Apache 2.4.2 preform mpm. > > I hope you figure these things out, as mod_mruby is a welcome addition > to the http server :). If you can get it to run stable on 2.4/2.5 before > ApacheCon, I'd love to try it out again and get some proper performance > tests going. > > With regards, > Daniel. I'ts awesome! With regards, Ryosuke. MATSUMOTO Ryosuke < matsu1229 at gmail.com > http://blog.matsumoto-r.jp/
Re: mod_mruby to provide an alternative to mod_lua
On 01/21/2013 07:32 AM, 松本 亮介 wrote: > Hi Daniel. > > Thank you for your comment. > >> I have tried to compile and install mod_mruby on my own machine to test >> it, but there are too many compiler errors for it to work :( In >> particular, you have a lot of declarations after statements in your >> code, which is not C90 compliant, and needs fixing. There are also some > > Did you built mruby? If you don't build murky, you try to build by bellow > commands. > > - mruby and mod_mruby build > git clone git://github.com/matsumoto-r/mod_mruby.git > cd mod_mruby > git submodule init > git submodule update > cd murby > rake > cd .. > ./configure --with-apxs=/usr/local/apache/bin/apxs > --with-apachectl=/usr/local/apache/bin/apachectl > make > make install > > - mod_mruby settings > cp -p test/test.mrb /usr/local/apache/htdocs/. > vi /usr/local/apache/conf/httpd.con > (snip) > LoadModule mruby_module modules/mod_mruby.so > AddHandler mruby-script .mrb > (snip) > /usr/local/apache/bin/apachectl start > > - mod_mruby test > http://youraddress/test.mrb > Hi again, I did manage to finally get mod_mruby running on my test server, after a lot of tweaking of your source code. In general, you should always compile your development modules using _maintainer mode_. This can be achieved when you configure the httpd source by running ./configure --enable-maintainer-mode. This should also make apxs run using maintainer mode, which will alert you to anything about the code which doesn't sit right with httpd and the standards we have laid out. As for how the module runs, I'll include mod_mruby in my talk a bit, showing how mod_lua compares to it as well as mod_php and mod_perl on httpd 2.4 (yes, mod_perl can be built for 2.4 ;) ). While it shows a good performance - considering Ruby is generally a slow language - it does have serious performance issues once you start upping the concurrency on 2.4. At only 30 concurrent clients, I am getting a lot of disconnects and segmentation faults from mod_mruby, making it plummet down to 150 requests per second for a simple hello world script, and at 500 concurrent clients, it's as low as 50 requests per second, possibly because it crashes the server, which then has to re-spawn new workers all the time. I've uploaded a log of GDB at http://apaste.info/dsFz which you can possibly use to figure out why it's behaving like it does. There also seems to be a lot of other exceptions raised when just calling it with 1 client (mrb_exc_raise). I hope you figure these things out, as mod_mruby is a welcome addition to the http server :). If you can get it to run stable on 2.4/2.5 before ApacheCon, I'd love to try it out again and get some proper performance tests going. With regards, Daniel.
Re: mod_mruby to provide an alternative to mod_lua
Hi Daniel. Thank you for your comment. > I have tried to compile and install mod_mruby on my own machine to test > it, but there are too many compiler errors for it to work :( In > particular, you have a lot of declarations after statements in your > code, which is not C90 compliant, and needs fixing. There are also some Did you built mruby? If you don't build murky, you try to build by bellow commands. - mruby and mod_mruby build git clone git://github.com/matsumoto-r/mod_mruby.git cd mod_mruby git submodule init git submodule update cd murby rake cd .. ./configure --with-apxs=/usr/local/apache/bin/apxs --with-apachectl=/usr/local/apache/bin/apachectl make make install - mod_mruby settings cp -p test/test.mrb /usr/local/apache/htdocs/. vi /usr/local/apache/conf/httpd.con (snip) LoadModule mruby_module modules/mod_mruby.so AddHandler mruby-script .mrb (snip) /usr/local/apache/bin/apachectl start - mod_mruby test http://youraddress/test.mrb > errors that force the source code to use 2.2 standards when compiling it > for 2.4 or 2.5 - this also needs to be addressed: > > ap_mrb_connection.c:31 says: #ifdef __APACHE24__ > This should probably change to: #if (AP_SERVER_MINORVERSION_NUMBER > 2) it's smart! Thanks. Now, configure script figure out apache version from apachectl. > I am very interested in how you got to the benchmark results you did. > Statistically speaking, Ruby is a very slow language compared to Lua > (and in particular LuaJIT which is extremely fast - if you attend my > talk at ACNA, I'll show you just how fast ;) ). Which optimizations did > you make to the configuration? Which scopes and code caching options did > you use for your testing? Did you test mod_lua fom the 2.4 branch or the > trunk? I want to attend your talk about mod_lua and lua JIT. I'm getting really excited. > I'd also be interested in an English version of your slides, as there > may be things to learn from it :) > > We embrace competition here at Apache, so mod_mruby is a most welcome > addition, however I'd really like to get my hands on a working copy, so > I can test it out and see what it can really do. One advantage that I > could see from the source code is the ability to hook into the logging > part of httpd, which is something mod_lua currently lacks. I did not see > any filter hooks though - is this something you plan to add, or did I OK. I'll write a paper about mod_mruby in English, and present my work in an international symposium in a few month. Regards, Ryosuke. MATSUMOTO Ryosuke < matsu1229 at gmail.com > http://blog.matsumoto-r.jp/ On 2013/01/20, at 21:31, Daniel Gruno wrote: > On 01/20/2013 10:31 AM, MATSUMOTO Ryosuke wrote: >> Hi, all >> >> I'm Ryosuke MATSUMOTO, a Ph.D. student at Okabe Lab, Network >> Media Group Department of Intelligence Science and Technology >> Graduate School of Informatics, Kyoto University in Japan. >> >> My English is not very good, but I am studying at the moment to communicate >> developers of the world. >> >> I have been developing mod_mruby and ngx_mruby from Apr 2012. >> >> mod_mruby is a web server extension mechanism using embeddable >> scripting language mruby which has been attracting attention now. >> >> mod_mruby abstract: >> - >> As the increase of services using Web servers, the number of incidents >> also is increasing rapidly. In order to solve those problems, it is necessary >> to extend a functionality of a Web server software. >> >> In case of using Apache, developers are required high coding skill of C >> language and internal specifications of Apache in order to extend the >> functionality of it. >> >> The development of a web server extension requires some high skills, and >> the maintainability is low since that extension need to compile a code. >> >> Therefore, we propose mod_mruby that is a web server extension mechanism >> using embeddable scripting language mruby which has been attracting >> attention now. mod_mruby allows to extend the functionality of Apache >> easily by implementing a mruby script. mod_mruby provides an interface >> to hook and execute any mruby scripts in the various phases of processing >> requests inside Apache. When hooking mruby scripts, mruby scripts can >> process the data of processing requests inside Apache, taking advantage >> of the characteristics of a embeddable scripting language for C language. >> >> We have designed that mod_mruby run at high speed by sharing the data >> of state transition and the extension library of mruby by multiple >> mruby scripts >> and using only different byte code each mruby script. >> >> Many developers can implement a web server extension easily by mod_mruby >> in cooperation with coding style of mruby which is the same as object >> oriented >> programming ruby which is widely used by web developers. >> - >> >> see slide share about mod_mruby architecture and performance compared with >> mod_lua, mod_per, and a
Re: mod_mruby to provide an alternative to mod_lua
On 01/20/2013 10:31 AM, MATSUMOTO Ryosuke wrote: > Hi, all > > I'm Ryosuke MATSUMOTO, a Ph.D. student at Okabe Lab, Network > Media Group Department of Intelligence Science and Technology > Graduate School of Informatics, Kyoto University in Japan. > > My English is not very good, but I am studying at the moment to communicate > developers of the world. > > I have been developing mod_mruby and ngx_mruby from Apr 2012. > > mod_mruby is a web server extension mechanism using embeddable > scripting language mruby which has been attracting attention now. > > mod_mruby abstract: > - > As the increase of services using Web servers, the number of incidents > also is increasing rapidly. In order to solve those problems, it is necessary > to extend a functionality of a Web server software. > > In case of using Apache, developers are required high coding skill of C > language and internal specifications of Apache in order to extend the > functionality of it. > > The development of a web server extension requires some high skills, and > the maintainability is low since that extension need to compile a code. > > Therefore, we propose mod_mruby that is a web server extension mechanism > using embeddable scripting language mruby which has been attracting > attention now. mod_mruby allows to extend the functionality of Apache > easily by implementing a mruby script. mod_mruby provides an interface > to hook and execute any mruby scripts in the various phases of processing > requests inside Apache. When hooking mruby scripts, mruby scripts can > process the data of processing requests inside Apache, taking advantage > of the characteristics of a embeddable scripting language for C language. > > We have designed that mod_mruby run at high speed by sharing the data > of state transition and the extension library of mruby by multiple > mruby scripts > and using only different byte code each mruby script. > > Many developers can implement a web server extension easily by mod_mruby > in cooperation with coding style of mruby which is the same as object > oriented > programming ruby which is widely used by web developers. > - > > see slide share about mod_mruby architecture and performance compared with > mod_lua, mod_per, and a module written by C language.(Sorry in Japanese) > > http://www.slideshare.net/matsumoto_r/mrubyweb > Hi, Matsumoto, Your project does indeed look interesting, and for those more accustomed to Ruby, perhaps this is a good alternative. I have tried to compile and install mod_mruby on my own machine to test it, but there are too many compiler errors for it to work :( In particular, you have a lot of declarations after statements in your code, which is not C90 compliant, and needs fixing. There are also some errors that force the source code to use 2.2 standards when compiling it for 2.4 or 2.5 - this also needs to be addressed: ap_mrb_connection.c:31 says: #ifdef __APACHE24__ This should probably change to: #if (AP_SERVER_MINORVERSION_NUMBER > 2) I am very interested in how you got to the benchmark results you did. Statistically speaking, Ruby is a very slow language compared to Lua (and in particular LuaJIT which is extremely fast - if you attend my talk at ACNA, I'll show you just how fast ;) ). Which optimizations did you make to the configuration? Which scopes and code caching options did you use for your testing? Did you test mod_lua fom the 2.4 branch or the trunk? I'd also be interested in an English version of your slides, as there may be things to learn from it :) We embrace competition here at Apache, so mod_mruby is a most welcome addition, however I'd really like to get my hands on a working copy, so I can test it out and see what it can really do. One advantage that I could see from the source code is the ability to hook into the logging part of httpd, which is something mod_lua currently lacks. I did not see any filter hooks though - is this something you plan to add, or did I just miss it? With regards, Daniel.
mod_mruby to provide an alternative to mod_lua
Hi, all I'm Ryosuke MATSUMOTO, a Ph.D. student at Okabe Lab, Network Media Group Department of Intelligence Science and Technology Graduate School of Informatics, Kyoto University in Japan. My English is not very good, but I am studying at the moment to communicate developers of the world. I have been developing mod_mruby and ngx_mruby from Apr 2012. mod_mruby is a web server extension mechanism using embeddable scripting language mruby which has been attracting attention now. mod_mruby abstract: - As the increase of services using Web servers, the number of incidents also is increasing rapidly. In order to solve those problems, it is necessary to extend a functionality of a Web server software. In case of using Apache, developers are required high coding skill of C language and internal specifications of Apache in order to extend the functionality of it. The development of a web server extension requires some high skills, and the maintainability is low since that extension need to compile a code. Therefore, we propose mod_mruby that is a web server extension mechanism using embeddable scripting language mruby which has been attracting attention now. mod_mruby allows to extend the functionality of Apache easily by implementing a mruby script. mod_mruby provides an interface to hook and execute any mruby scripts in the various phases of processing requests inside Apache. When hooking mruby scripts, mruby scripts can process the data of processing requests inside Apache, taking advantage of the characteristics of a embeddable scripting language for C language. We have designed that mod_mruby run at high speed by sharing the data of state transition and the extension library of mruby by multiple mruby scripts and using only different byte code each mruby script. Many developers can implement a web server extension easily by mod_mruby in cooperation with coding style of mruby which is the same as object oriented programming ruby which is widely used by web developers. - see slide share about mod_mruby architecture and performance compared with mod_lua, mod_per, and a module written by C language.(Sorry in Japanese) http://www.slideshare.net/matsumoto_r/mrubyweb and mod_mruby receive some glowing notices bellow uri: https://plus.google.com/114552443805676710515/posts/Jbh4S3Zsz2S http://matt.aimonetti.net/posts/2012/04/25/getting-started-with-mruby/ and mod_mruby was referred form the keynote of mruby by Matz like http://www.everytalk.tv/talks/657-Euroko-Keynote . see mruby github: https://github.com/mruby/mruby mod_mruby allows to extend the functionality of Apache easily. mod_mruby proveid an alternative to mod_lua. see mod_mruby github: https://github.com/matsumoto-r/mod_mruby - example -- proxy by mod_mruby https://github.com/matsumoto-r/mod_mruby/tree/master/example/proxy -- support redis and auth provide using mruby-redis https://github.com/matsumoto-r/mod_mruby/blob/master/example/redis -- support auth provide https://github.com/matsumoto-r/mod_mruby/tree/master/example/auth -- support limit control https://github.com/matsumoto-r/mod_mruby/tree/master/example/limit_control -- support rewrite https://github.com/matsumoto-r/mod_mruby/tree/master/example/rewrite -- support vhosts https://github.com/matsumoto-r/mod_mruby/tree/master/example/vhost -- support cgroup using mruby-cgroup https://github.com/matsumoto-r/mod_mruby/tree/master/example/cgroup -- support Raspberry Pi (hobby) https://github.com/matsumoto-r/mod_mruby/tree/master/example/RaspberryPi and so on.. I write some entry about mod_mruby in my blog (Sorry Japanese) http://blog.matsumoto-r.jp/ So, How do you feel about mod_mruby? I would appreciate it if you could give me your opinion. I'll attend ApacheCon NA 2013 and I'm looking forward to seeing apache developers! Best regards, -- MATSUMOTO Ryosuke < matsu1229 at gmail.com > http://blog.matsumoto-r.jp/