-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Baldur,

On 4/28/14, 8:00 AM, Baldur wrote:
> Hi all,
> 
> I'd like to get some help about my current architecture. The 
> current scenario uses mod_jk to connect Apache httpd and Tomcat6. I
> have two Tomcat instances (using DeltaManager for session
> replication and sticky session enabled) in order to provide high
> availability and balance load across instances.  Currently Tomcat
> manages 28 webapps and 7 of them are only web services. Generally
> speaking, a webapp usually involves JSF or Struts while a web
> services war involves JAX-WS. Both types of application have a
> common stack implemented with Spring and Hibernate. As a result,
> each application produces a war of around 40-50 MB.
> 
> I'd like to ask you several questions to provide better 
> performance:
> 
> *         Which approach would be appropriate for this scenario?
> All wars in one cluster? Maybe move web services to other cluster?

Honestly, this is going to depend more on your own application's
architecture, your own deployment preferences, etc. One can generally
make a good argument about just about any strategy, here.

> *         In order to improve deployments, which technique can I
> use to minimize war size? Will be the cause of memory issues? I
> have tried to put some common jars (spring, apache-commons and so
> on) in Tomcat lib but I don't know if there is a better approach by
> other means.

What is your motivation to reduce WAR size? 50MiB is practically nothing.

> I read as much as I can but I'm stuck trying to find the best tools
> to monitor the system and tackle memory issues (such as the dreaded
> PermGen).

Are you actually experiencing PermGen exhaustion? What steps have you
already taken? I don't use Struts 2 or Spring, but my understanding is
that Spring can cause a huge number of classes to be loaded
unnecessarily and it's quite easy to fill-up PermGen. Is there
anything you are using that inherently loads a large number of classes?

> I think it's a quite common scenario for a relatively small
> production environment but I don't find the best configuration that
> suits this type of deployment.

You can always choose to deploy applications in separate JVMs, etc. if
you find that one or more of them is a bit less stable than you'd
prefer. I find it's better to segregate such applications in order to
improve the stability of the other applications (that had been)
running in the same JVM.

Since you are using httpd, you have a lot of flexibility to re-route
requests to various back-ends which won't affect your clients.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBCAAGBQJTXlgdAAoJEBzwKT+lPKRYedoQAIhB84Et3LXr3B3lQFLpTMky
8OO4k6+9mlg5jeNCNrjMiKTT9VxfsRUZVQ9bI087XAVmvfWnvdomo/C/E14lpqeS
iNDqbL+BTKPGb13dh7ZMXe3OUbHHPGF/R93RHtjJnkw/7wgUbIXUWVj4Uhw5CdWf
p3Lhb3xcCF6XO/tIXRIGaTb9MNps6JSe2tJdOIjBUGR002GkFEFTOI5RPxYC9rb0
0UI3DPp53zF2jl3NSB8LsfkXBmyJCAbL+prpdWi3p2auH1OxmiTvkWP5muew2iR6
GFGSM3t/KwqV5bDdO0BC9SlPNr1NPtUJPtaTu8AsawPRFHnLdjJT8uPBcUdue0KJ
8D/yg446qtx4BVuGp2hs9Zob1yKu/It0/l6T7vKOZ8J6QWRmjVtEICWz6QQ2iRhs
1PzmUjK5VYc6792tX3se6L+4Ac7ASGuube3nuGOtf5+c4GALnLbLUJqV2c87GKrp
ZR3TugU3mqYkgcd4UxuIgsRbruy6QlI5y8w+3O45mcp3wSrCeIEjblgFbGQQPeBx
oQrseguWFUNEbMVwrcN+V+fc/O+c6dTJSw2mhDU5ix1bw2gBZ1CRdyJRiivMWUj3
VmUV3l8mddOx+zOn25ifZ76eSjvDLTVFcGw213QUg3YFF93leF/ePLde5U5V148h
OTfprjcAWf1LZs4/tCC5
=HKV0
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to