On Jan 27, 2014, at 9:21 AM, Арсений Зинченко <setev...@gmail.com> wrote:
> Hi. > > I'm sorry for so kindly question - but needs experts advice... > > We have a little dispute with my colleague about using this variables. > > So: have Windows-box machine. On it - runing few different > Java-application, including Tomcat. > > Needs to set memory for Tomcat other, than for all other Java-applications. > > My proposal is set to System variables: > > JAVA_OPTS "-Xmx1024M -Xms512M -XX:MaxPermSize512M" > CATALINA_OPTS "-Xmx4096M -Xms2048M -XX:MaxPermSize=1024M” Don’t set these as system variables. You’d want to define them in setenv.bat if you’re running from the command prompt or with the Windows Service utility (either [1] or [2]), if you’re running as a service. > > But, as he asserts - this is not correct way: > > > - CATALINA_OPTS must NOT contain memory limits like "Xmx", "Xms" etc; There are no restrictions to what you can set in CATALINA_OPTS. You could put your memory setting there if you wanted. Having said that, if you’re running as a Windows service then you wouldn’t. You'd set your heap memory settings through the service wrapper (either [1] or [2]). If you’re running from the console (not likely) or on Linux / Unix then you’d set your heap settings in the setenv.sh|bat script. Again, you could put memory settings in CATALINA_OPTS or in JAVA_OPTS. Setting them in CATALINA_OPTS is generally a better choice though because settings in CATALINA_OPTS are only applied when Tomcat is started. If you set them in JAVA_OPTS then they’ll be applied when you start and stop the instance, something you probably don’t want for your heap settings. > - Java Garbage collector will work differently because JAVA_OPTS have > another opts for memory then CATALINA_OPTS, so - this will worse Tomcat > performance; I’m not sure I follow your logic here. The JVM is only going to accept one value for Xmx and Xms. Specifying the same options in JAVA_OPTS and CATALINA_OPTS would just be confusing. > - and so on > > His suggestion is to set JAVA_OPTS with memory limits exactly to Tomcat > startup script (not as system variable at all). Again, don’t set system variables for these. There’s no reason to set them system wide. > > So, my question is: is it correct to set memory limits for Tomcat via > CATALINA_OPTS variable? Generally, but it depends on how you are starting Tomcat. Since you’re on Windows, you’re probably running as a service and that’s going to be a bit different. See above comments. > If in system also present JAVA_OPTS - will it have influence on to Tomcat's > performance? I think I answered this above. If it’s not clear, let me know. > > Thanks. Dan [1] - http://tomcat.apache.org/tomcat-7.0-doc/windows-service-howto.html#Command_line_parameters [2] - http://tomcat.apache.org/tomcat-7.0-doc/windows-service-howto.html#Tomcat7w_monitor_application --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org