Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regarding slow bootup time jruby 1.7.4 + redhat 64bit + 17.0..40 java #1025

Closed
abhishek0 opened this issue Sep 19, 2013 · 5 comments
Closed

Comments

@abhishek0
Copy link

I have been facing this problem since I started off with jruby. I used the bundled jdk which ships with redhat. On my development machine, Fedora, server and everything loads normally. But on production redhat machine, the bootup time for server is forever.

I thought that using openjdk might be the issue so I started using oracle jdk
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)

But now I am seeing the error libjffi-1.2.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c ', or link it with '-z noexecstack'.
and it takes even longer

I have looked into this issue #626 but I don't know how to resolve this.
Please help

@abhishek0
Copy link
Author

Every process takes a lot of time

@abhishek0
Copy link
Author

I believe that stackguard error has really bubbled up the time which I was facing, because with jdk upgrade, everything is 2 times slower

@sluukkonen
Copy link
Contributor

It's could be related to increased memory requirements when invokedynamic is enabled (it's enabled by default when using jdk7u40). Try increasing your heap and/or permgen size with something like JRUBY_OPTS="-J-Xmx1024m -J-XX:MaxPermSize=128m".

@headius
Copy link
Member

headius commented Sep 19, 2013

There's a couple things at play here...

  • The new indy implementation in u40 is almost entirely written in Java,
    which means it has the same warmup characteristics as Java code (it was
    mostly native code before). It also creates a large chain of objects called
    "LambdaForms" that represent method handles broken down into individual
    operations.
  • Increased memory and permgen from generating LambdaForms
  • Much more involved dynamic dispatch pipeline for LambdaForms until the
    JVM finally compiles them.

For my benchmarks, the new implementation is 2-3x slower for initial
benchmark iterations and 2x slower to start up in many cases.

  • Charlie

On Thu, Sep 19, 2013 at 8:38 AM, Sakumatti Luukkonen <
notifications@github.com> wrote:

It's could be related to increased memory requirements when invokedynamic
is enabled (it's enabled by default with jdk7u40). Try increased your heap
and/or permgen size with something like JRUBY_OPTS="-J-Xmx1024m
-J-XX:MaxPermSize=128m".


Reply to this email directly or view it on GitHubhttps://github.com//issues/1025#issuecomment-24738947
.

@enebo enebo added this to the Won't Fix milestone Feb 17, 2017
@enebo
Copy link
Member

enebo commented Feb 17, 2017

This works in 9k and we will never fix this in 1.7.x as it is winding down....resolving.

@enebo enebo closed this as completed Feb 17, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants