0

When multiple applications are deployed to an application server, do they all share the same JVM?

If not, is each application targeted to a different JVM?

If yes, then will it not become a performance issue - ex: multiple applications using same heap space which means more frequent garbage collection etc?

Is it not a good idea to deploy these applications as self contained Sprinboot with tomcat?

I know we have an option of using different domains to have separate JVM’s for each application - but still having many application servers up and running could also consume more resources?

3
  • With Tomcat you can either arrange it to share the same Tomcat or to have different Tomcat bases Commented Aug 14, 2018 at 4:46
  • I understand, but my question is which is better ( using springboot+tomcat as opposed to weblogic/websphere and targeting multiple applications to the same instance of application server vs each application having its own container). Tomcat is light weight compared to weblogic/websphere. Commented Aug 14, 2018 at 5:12
  • As it stands this question is off topic for several reasons: [1] It is far too broad, and contains multiple questions. [2] It invites opinion based answers. [3] Questions on professional server, networking, or related infrastructure administration are off-topic for Stack Overflow unless they directly involve programming or programming tools. In general questions on application server architecture are off topic here unless there is a programming related aspect. Commented Aug 14, 2018 at 7:04

1 Answer 1

1

Talking for weblogic server, all deployed applications share same JVM. Frequency of garbage collection is related with Min/Max Heap sizes that you set. Setting the minimum heap size (-Xms) smaller or the maximum heap size (-Xmx) larger affects how often garbage collection will occur and determines the approximate amount of live data an application can have.

For further information: https://docs.oracle.com/cd/E13221_01/wlrt/docs11/intro_wlrt/tuning.html https://docs.oracle.com/cd/E12529_01/wlss31/configwlss/jvmgc.html https://blogs.oracle.com/imc/weblogic-server-performance-and-tuning:-part-i-tuning-jvm

Sign up to request clarification or add additional context in comments.

4 Comments

What about when there is a cluster of WebLogic servers? In that scenario can't you have a single deployed application running on multiple WebLogic servers (and therefore multiple JVMs) concurrently? That can certainly be done with WebSphere, for scaling and resilience.
Sure you can, otherwise clustering would be totally pointless i think.
Then your statement that "all deployed applications share same JVM" is not necessarily true, right?
Clustering does not affect the answer for this question. When you cluster your servers, it doesn't mean that you provide seperate JVMs to seperate applications, it means that your application is running on several JVMs. Clustered or not, multiple applications will be running on a particular JVM at the same time. Question is about sharing JVM among applications. It's not about running single application on several instances.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.