j ruby kungfu rails

20
DigitalSonic Oct. 2009 It’s a Bird… It’s a Plane… No, it’s Superman

Upload: daniel-lv

Post on 16-May-2015

1.399 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: J Ruby   Kungfu Rails

DigitalSonicOct. 2009

It’s a Bird…

It’s a Plane…

No, it’s Superman

Page 2: J Ruby   Kungfu Rails

How many Rails developers have Java knowledge?

Page 3: J Ruby   Kungfu Rails

• The Best of JVM

• It’s Just Ruby

• Platform Independent

Page 4: J Ruby   Kungfu Rails

Have a Try

• Download the latest JRuby distribution

• Unpack

• Add the bin path to $PATH or %PATH%

• Test it

jruby –v

jirb

jirb_swing

Page 5: J Ruby   Kungfu Rails

Ruby => JRuby

• ruby jruby

• C backend libraries Java backend libraries

• …

• gem jruby –S gem

• rake jruby –S rake

• rails jruby –S rails

Page 6: J Ruby   Kungfu Rails

Ruby on Rails => JRuby on Rails

adapter: mysqlmongrelRMagick…

adapter: jdbcmysqlmongrel-jrubyRMagick4J…

Page 7: J Ruby   Kungfu Rails

Both Rails and Java EE projects are running in the same Java AS?

Page 8: J Ruby   Kungfu Rails

Warbler

• Warbler is a gem that makes a .war file out of a Rails, Merb, or Rack-based application.

http://kenai.com/projects/warbler

Page 9: J Ruby   Kungfu Rails

Rails in Java AS

• Tomcat

• Jetty (jetty-rails)

• Glassfish v2 / v3 (gem)

• JBoss (JBoss-Rails)

• …

Page 10: J Ruby   Kungfu Rails

Rails in Java AS (cont.)

• Larger JVM Memory Size

• Server JVM

• Latest JDK

• Sun JDK / BEA JRockit ?

• Connection Pool

• Load-Balance

Page 11: J Ruby   Kungfu Rails

Showcase: Blog

• Getting Started with Railshttp://guides.rubyonrails.org/getting_started.html

• Step by Step jruby -S rails blogModify database settings jruby -S warble configModify config/warble.rb jruby -S warble warDeploy into Tomcat

Page 12: J Ruby   Kungfu Rails

Showcase: Blog (cont.)

Page 13: J Ruby   Kungfu Rails

Showcase: Monitor

• Tomcat Monitor Tools

PSI Probe (Lambda Probe)

Hyperic HQ

• VM Monitor Tools

JConsole

VisualVM

JRockit Mission Control

Page 14: J Ruby   Kungfu Rails

Showcase: Monitor (cont.)

Page 15: J Ruby   Kungfu Rails

Showcase: Monitor (cont.)

Page 16: J Ruby   Kungfu Rails

Showcase: Simple Tuning

• VM -Xmx768m -Xms768m -Xmn256m -XX:MaxPermSize=128m -

XX:PermSize=128m

• Tomcat Connector maxThreads="1024" minSpareThreads="32" maxSpareThreads="128"

enableLookups="false"

• JNDI Connection Pool

For my laptop only, not for production environment

Some parameters are set without measurement

Page 17: J Ruby   Kungfu Rails

Showcase: Simple Tuning (cont.)

Ubuntu 8.10, kernel 2.6.27-14-genericJDK 1.6.0 Update 10JRuby 1.3.1Apache Tomcat 6.0.20Mongrel 1.1.5

rails 2.2.2activerecord-jdbc-adapter 0.9.2jdbc-mysql 5.0.4warbler 0.9.14

18.561 12.367 6.748

185.817

106.742

64.735

0

20

40

60

80

100

120

140

160

180

200

Mongrel Tomcat Tomcat-Optimized

Time Taken For Tests (s)

Total n100 c10 Total n1000 c100

266

1784

2396

241

1202

1805

142

641786

0

500

1000

1500

2000

2500

Min Avg Max

ab -n 100 -c 10 (ms)

Mongrel Tomcat Tomcat-Optimized

Page 18: J Ruby   Kungfu Rails

Reference

• http://jruby.org

• http://rubyonrails.org/

• http://kenai.com/projects/jruby/

• Practical JRuby on Rails Web 2.0 Projects

• JRuby Cookbook

Page 19: J Ruby   Kungfu Rails

Q & A

Page 20: J Ruby   Kungfu Rails