-----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