Re: JVM args, GC issues, performance tuning - CF9, Win2k8
Ben, The settings for -XX:PermSize=512m -XX:MaxPermSize=512m seem a bit large based on the max heap size of 1024. Did you run some tuning tests to see that these sizes were needed? I usually see settings on high load servers around 128/192 up-to 192/256. These are all based on the particular app and server in question. Your results may vary depending on the server and application needs. Also, there are other settings you should add. The GC setting is good. Parallel GC is meant for multiple CPU servers. However, the default execution times of the GC is every minute unless you set them. Use these settings (-Dsun.rmi.dgc.client.gcInterval=60 -Dsun.rmi.dgc.server.gcInterval=60 ) to set the time interval in millie seconds. I've found tens minutes is a good place to start then monitor your app and server and adjust accordingly. Also look at setting the ratio of perm to new gen -XX:NewRatio=3 . Hope this helps you in the right direction. Wil Genovese Sr. Web Application Developer/ Systems Administrator CF Webtools www.cfwebtools.com wilg...@trunkful.com www.trunkful.com On Feb 9, 2011, at 1:09 PM, Ben Raccuia wrote: Hello Mark, I was hoping you could help out in this case as well. I have followed this post and made the recommended changes you specified, but still we have periodic CF service restarts. I have attached the VM arguments and evars. Any help in direction would be welcome. Thank you. BEN VM Arguments: jvm_args: -Xms1024m -Xmx1024m -Dsun.io.useCanonCaches=false -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseParallelGC -Dcoldfusion.rootDir=C:\ColdFusion9\runtime/../ -Dcoldfusion.libPath=C:\ColdFusion9\runtime/../lib -Dcoldfusion.classPath=C:\ColdFusion9\runtime/../lib/updates,C:\ColdFusion9\runtime/../lib,C:\ColdFusion9\runtime/../gateway/lib/,C:\ColdFusion9\runtime/../wwwroot/WEB-INF/flex/jars,C:\ColdFusion9\runtime/../wwwroot/WEB-INF/cfform/jars -Djmx.invoke.getters=true java_command: unknown Launcher Type: generic Environment Variables: PATH=C:\ColdFusion9\runtime\..\lib;C:\ColdFusion9\runtime\..\jintegra\bin;C:\ColdFusion9\runtime\..\jintegra\bin\international;C:\ColdFusion9\runtime\..\lib\oosdk\classes\win;C:\Program Files\Legato\nsr\bin;C:\ColdFusion9\verity\k2\_nti40\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\ USERNAME=Administrator OS=Windows_NT PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 46 Stepping 6, GenuineIntel --- S Y S T E M --- OS: Windows Server 2008 R2 Build 7600 CPU:total 2 (1 cores per cpu, 1 threads per core) family 6 model 46 stepping 6, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2 Memory: 4k page, physical 4194303k(4194303k free), swap 4194303k(4194303k free) vm_info: Java HotSpot(TM) Server VM (14.3-b01) for windows-x86 JRE (1.6.0_17-b04), built on Oct 11 2009 00:46:21 by java_re with MS VC++ 7.1 time: Wed Feb 09 14:00:00 2011 elapsed time: 3539 seconds Kris, As dave said, I would start with increasing minimum and maximum heap size to something more likely for a 64bit server. 512megs is inadequate. Set it to at least 1024 (both of them) and other's have mentioned additional switches. -Mark Mark A. Kruger, MCSE, CFG (402) 408-3733 ext 105 Skype: markakruger www.cfwebtools.com www.coldfusionmuse.com www.necfug.com It's as default as it gets. No changes from initial install at all: An enterprise server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/ -Djava.security.policy={application.home}/servers/cfusion/cfusion-ear/cfusio n-war/WEB-INF/cfusion/lib/coldfusion.policy -Djava.security.auth.policy={application.home}/servers/cfusion/cfusion-ear/c fusion-war/WEB-INF/cfusion/lib/neo_jaas.policy A standard server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/../ -Djava.security.policy={application.home}/../lib/coldfusion.policy -Djava.security.auth.policy={application.home}/../lib/neo_jaas.policy -Dcoldfusion.classPath={application.home}/../lib/updates,{application.home}/ ../lib,{application.home}/../gateway/lib/,{application.home}/../wwwroot/WEB- INF/cfform/jars,{application.home}/../wwwroot/WEB-INF/flex/jars -Dcoldfusion.libPath={application.home}/../lib Cheers, Kris Please post your JVM config line from jvm.config I can most likely give you the pointers you need once I see your existing config arguments. http://groups.google.com/group/cfaussie/browse_thread/thread/3932bce486621ab e/8b37ea8cbe0384b6?pli=1 http://www.softwaresecretweapons.com/jspwiki/thelastjavagarbagecollectiongui deyouwilleverneed ~| Order the
Re: JVM args, GC issues, performance tuning - CF9, Win2k8
Hello Mark, I was hoping you could help out in this case as well. I have followed this post and made the recommended changes you specified, but still we have periodic CF service restarts. I have attached the VM arguments and evars. Any help in direction would be welcome. Thank you. BEN VM Arguments: jvm_args: -Xms1024m -Xmx1024m -Dsun.io.useCanonCaches=false -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseParallelGC -Dcoldfusion.rootDir=C:\ColdFusion9\runtime/../ -Dcoldfusion.libPath=C:\ColdFusion9\runtime/../lib -Dcoldfusion.classPath=C:\ColdFusion9\runtime/../lib/updates,C:\ColdFusion9\runtime/../lib,C:\ColdFusion9\runtime/../gateway/lib/,C:\ColdFusion9\runtime/../wwwroot/WEB-INF/flex/jars,C:\ColdFusion9\runtime/../wwwroot/WEB-INF/cfform/jars -Djmx.invoke.getters=true java_command: unknown Launcher Type: generic Environment Variables: PATH=C:\ColdFusion9\runtime\..\lib;C:\ColdFusion9\runtime\..\jintegra\bin;C:\ColdFusion9\runtime\..\jintegra\bin\international;C:\ColdFusion9\runtime\..\lib\oosdk\classes\win;C:\Program Files\Legato\nsr\bin;C:\ColdFusion9\verity\k2\_nti40\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\ USERNAME=Administrator OS=Windows_NT PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 46 Stepping 6, GenuineIntel --- S Y S T E M --- OS: Windows Server 2008 R2 Build 7600 CPU:total 2 (1 cores per cpu, 1 threads per core) family 6 model 46 stepping 6, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2 Memory: 4k page, physical 4194303k(4194303k free), swap 4194303k(4194303k free) vm_info: Java HotSpot(TM) Server VM (14.3-b01) for windows-x86 JRE (1.6.0_17-b04), built on Oct 11 2009 00:46:21 by java_re with MS VC++ 7.1 time: Wed Feb 09 14:00:00 2011 elapsed time: 3539 seconds Kris, As dave said, I would start with increasing minimum and maximum heap size to something more likely for a 64bit server. 512megs is inadequate. Set it to at least 1024 (both of them) and other's have mentioned additional switches. -Mark Mark A. Kruger, MCSE, CFG (402) 408-3733 ext 105 Skype: markakruger www.cfwebtools.com www.coldfusionmuse.com www.necfug.com It's as default as it gets. No changes from initial install at all: An enterprise server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/ -Djava.security.policy={application.home}/servers/cfusion/cfusion-ear/cfusio n-war/WEB-INF/cfusion/lib/coldfusion.policy -Djava.security.auth.policy={application.home}/servers/cfusion/cfusion-ear/c fusion-war/WEB-INF/cfusion/lib/neo_jaas.policy A standard server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/../ -Djava.security.policy={application.home}/../lib/coldfusion.policy -Djava.security.auth.policy={application.home}/../lib/neo_jaas.policy -Dcoldfusion.classPath={application.home}/../lib/updates,{application.home}/ ../lib,{application.home}/../gateway/lib/,{application.home}/../wwwroot/WEB- INF/cfform/jars,{application.home}/../wwwroot/WEB-INF/flex/jars -Dcoldfusion.libPath={application.home}/../lib Cheers, Kris Please post your JVM config line from jvm.config I can most likely give you the pointers you need once I see your existing config arguments. http://groups.google.com/group/cfaussie/browse_thread/thread/3932bce486621ab e/8b37ea8cbe0384b6?pli=1 http://www.softwaresecretweapons.com/jspwiki/thelastjavagarbagecollectiongui deyouwilleverneed ~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:342058 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm
Re: JVM args, GC issues, performance tuning - CF9, Win2k8
Rest... Environment Variables: PATH=C:\ColdFusion9\runtime\..\lib;C:\ColdFusion9\runtime\..\jintegra\bin;C:\ColdFusion9\runtime\..\jintegra\bin\international;C:\ColdFusion9\runtime\..\lib\oosdk\classes\win;C:\Program Files\Legato\nsr\bin;C:\ColdFusion9\verity\k2\_nti40\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\ USERNAME=Administrator OS=Windows_NT PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 46 Stepping 6, GenuineIntel --- S Y S T E M --- OS: Windows Server 2008 R2 Build 7600 CPU:total 2 (1 cores per cpu, 1 threads per core) family 6 model 46 stepping 6, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2 Memory: 4k page, physical 4194303k(4194303k free), swap 4194303k(4194303k free) vm_info: Java HotSpot(TM) Server VM (14.3-b01) for windows-x86 JRE (1.6.0_17-b04), built on Oct 11 2009 00:46:21 by java_re with MS VC++ 7.1 time: Wed Feb 09 14:00:00 2011 elapsed time: 3539 seconds Hello Mark, I was hoping you could help out in this case as well. I have followed this post and made the recommended changes you specified, but still we have periodic CF service restarts. I have attached the VM arguments and evars. Any help in direction would be welcome. Thank you. BEN VM Arguments: jvm_args: -Xms1024m -Xmx1024m -Dsun.io.useCanonCaches=false -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseParallelGC -Dcoldfusion. rootDir=C:\ColdFusion9\runtime/../ -Dcoldfusion. libPath=C:\ColdFusion9\runtime/../lib -Dcoldfusion. classPath=C:\ColdFusion9\runtime/../lib/updates, C:\ColdFusion9\runtime/../lib,C:\ColdFusion9\runtime/../gateway/lib/, C:\ColdFusion9\runtime/../wwwroot/WEB-INF/flex/jars, C:\ColdFusion9\runtime/../wwwroot/WEB-INF/cfform/jars -Djmx.invoke. getters=true java_command: unknown Launcher Type: generic Environment Variables: PATH=C:\ColdFusion9\runtime\..\lib;C:\ColdFusion9\runtime\.. \jintegra\bin;C:\ColdFusion9\runtime\.. \jintegra\bin\international;C:\ColdFusion9\runtime\.. \lib\oosdk\classes\win;C:\Program Files\Legato\nsr\bin;C:\ColdFusion9\verity\k2\_nti40\bin;C:\Windows\system32;C:\Win dows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1. 0\ USERNAME=Administrator OS=Windows_NT PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 46 Stepping 6, GenuineIntel --- S Y S T E M --- OS: Windows Server 2008 R2 Build 7600 CPU:total 2 (1 cores per cpu, 1 threads per core) family 6 model 46 stepping 6, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4. 2 Memory: 4k page, physical 4194303k(4194303k free), swap 4194303k(4194303k free) vm_info: Java HotSpot(TM) Server VM (14.3-b01) for windows-x86 JRE (1. 6.0_17-b04), built on Oct 11 2009 00:46:21 by java_re with MS VC++ 7. 1 time: Wed Feb 09 14:00:00 2011 elapsed time: 3539 seconds Kris, As dave said, I would start with increasing minimum and maximum heap size to something more likely for a 64bit server. 512megs is inadequate. Set it to at least 1024 (both of them) and other's have mentioned additional switches. -Mark Mark A. Kruger, MCSE, CFG (402) 408-3733 ext 105 Skype: markakruger www.cfwebtools.com www.coldfusionmuse.com www.necfug.com It's as default as it gets. No changes from initial install at all: An enterprise server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/ -Djava.security.policy={application. home}/servers/cfusion/cfusion-ear/cfusio n-war/WEB-INF/cfusion/lib/coldfusion.policy -Djava.security.auth.policy={application. home}/servers/cfusion/cfusion-ear/c fusion-war/WEB-INF/cfusion/lib/neo_jaas.policy A standard server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/../ -Djava.security.policy={application.home}/../lib/coldfusion.policy -Djava.security.auth.policy={application.home}/../lib/neo_jaas. policy -Dcoldfusion.classPath={application.home}/../lib/updates,{application. home}/ ../lib,{application.home}/../gateway/lib/,{application.home}/.. /wwwroot/WEB- INF/cfform/jars,{application.home}/../wwwroot/WEB-INF/flex/jars -Dcoldfusion.libPath={application.home}/../lib Cheers, Kris Please post your JVM config line from jvm.config I can most likely give you the pointers you need once I see your existing config arguments. http://groups.google. com/group/cfaussie/browse_thread/thread/3932bce486621ab e/8b37ea8cbe0384b6?pli=1 http://www.softwaresecretweapons. com/jspwiki/thelastjavagarbagecollectiongui deyouwilleverneed ~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
RE: JVM args, GC issues, performance tuning - CF9, Win2k8
Ben, We'll need some other clues besides the args. My only comment on the args is that permsize and maxpersize are the same... that's not often done - but probably not an issue. Let's start with this. Are there any files in c:\ColdFusion9\runtime\bin that look like hs_pid.log - or something similar? If there are start poking around in them. These are hot spot crash logs - a hot spot crash is often the culprit when someone says my service keeps restarting on its own... look for out of memory errors or specific dlls or actions... they are very cryptic so will have to be patient :) Next, take a look in the /coldfusion9/runtime/logs/cfusion-out.log. Look for clues around the time of the last restart (and immediately before). -Mark Mark A. Kruger, MCSE, CFG (402) 408-3733 ext 105 Skype: markakruger www.cfwebtools.com www.coldfusionmuse.com www.necfug.com -Original Message- From: Ben Raccuia [mailto:bracc...@rc.com] Sent: Wednesday, February 09, 2011 1:10 PM To: cf-talk Subject: Re: JVM args, GC issues, performance tuning - CF9, Win2k8 Hello Mark, I was hoping you could help out in this case as well. I have followed this post and made the recommended changes you specified, but still we have periodic CF service restarts. I have attached the VM arguments and evars. Any help in direction would be welcome. Thank you. BEN VM Arguments: jvm_args: -Xms1024m -Xmx1024m -Dsun.io.useCanonCaches=false -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseParallelGC -Dcoldfusion.rootDir=C:\ColdFusion9\runtime/../ -Dcoldfusion.libPath=C:\ColdFusion9\runtime/../lib -Dcoldfusion.classPath=C:\ColdFusion9\runtime/../lib/updates,C:\ColdFusion9\ runtime/../lib,C:\ColdFusion9\runtime/../gateway/lib/,C:\ColdFusion9\runtime /../wwwroot/WEB-INF/flex/jars,C:\ColdFusion9\runtime/../wwwroot/WEB-INF/cffo rm/jars -Djmx.invoke.getters=true java_command: unknown Launcher Type: generic Environment Variables: PATH=C:\ColdFusion9\runtime\..\lib;C:\ColdFusion9\runtime\..\jintegra\bin;C: \ColdFusion9\runtime\..\jintegra\bin\international;C:\ColdFusion9\runtime\.. \lib\oosdk\classes\win;C:\Program Files\Legato\nsr\bin;C:\ColdFusion9\verity\k2\_nti40\bin;C:\Windows\system32 ;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v 1.0\ USERNAME=Administrator OS=Windows_NT PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 46 Stepping 6, GenuineIntel --- S Y S T E M --- OS: Windows Server 2008 R2 Build 7600 CPU:total 2 (1 cores per cpu, 1 threads per core) family 6 model 46 stepping 6, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2 Memory: 4k page, physical 4194303k(4194303k free), swap 4194303k(4194303k free) vm_info: Java HotSpot(TM) Server VM (14.3-b01) for windows-x86 JRE (1.6.0_17-b04), built on Oct 11 2009 00:46:21 by java_re with MS VC++ 7.1 time: Wed Feb 09 14:00:00 2011 elapsed time: 3539 seconds Kris, As dave said, I would start with increasing minimum and maximum heap size to something more likely for a 64bit server. 512megs is inadequate. Set it to at least 1024 (both of them) and other's have mentioned additional switches. -Mark Mark A. Kruger, MCSE, CFG (402) 408-3733 ext 105 Skype: markakruger www.cfwebtools.com www.coldfusionmuse.com www.necfug.com It's as default as it gets. No changes from initial install at all: An enterprise server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/ -Djava.security.policy={application.home}/servers/cfusion/cfusion-ear/cfusi o n-war/WEB-INF/cfusion/lib/coldfusion.policy -Djava.security.auth.policy={application.home}/servers/cfusion/cfusion-ear/ c fusion-war/WEB-INF/cfusion/lib/neo_jaas.policy A standard server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/../ -Djava.security.policy={application.home}/../lib/coldfusion.policy -Djava.security.auth.policy={application.home}/../lib/neo_jaas.policy -Dcoldfusion.classPath={application.home}/../lib/updates,{application.home} / ../lib,{application.home}/../gateway/lib/,{application.home}/../wwwroot/WEB - INF/cfform/jars,{application.home}/../wwwroot/WEB-INF/flex/jars -Dcoldfusion.libPath={application.home}/../lib Cheers, Kris Please post your JVM config line from jvm.config I can most likely give you the pointers you need once I see your existing config arguments. http://groups.google.com/group/cfaussie/browse_thread/thread/3932bce486621a b e/8b37ea8cbe0384b6?pli=1 http://www.softwaresecretweapons.com/jspwiki/thelastjavagarbagecollectiongu i deyouwilleverneed ~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:342065
RE: JVM args, GC issues, performance tuning - CF9, Win2k8
Wait...let me say one more thing. A permsize of 512megs is pretty hefty. It's not unheard of, but are you sure you need it? Usually 256 is sufficient. -Mark Mark A. Kruger, MCSE, CFG (402) 408-3733 ext 105 Skype: markakruger www.cfwebtools.com www.coldfusionmuse.com www.necfug.com -Original Message- From: Mark A. Kruger [mailto:mkru...@cfwebtools.com] Sent: Wednesday, February 09, 2011 1:56 PM To: cf-talk Subject: RE: JVM args, GC issues, performance tuning - CF9, Win2k8 Ben, We'll need some other clues besides the args. My only comment on the args is that permsize and maxpersize are the same... that's not often done - but probably not an issue. Let's start with this. Are there any files in c:\ColdFusion9\runtime\bin that look like hs_pid.log - or something similar? If there are start poking around in them. These are hot spot crash logs - a hot spot crash is often the culprit when someone says my service keeps restarting on its own... look for out of memory errors or specific dlls or actions... they are very cryptic so will have to be patient :) Next, take a look in the /coldfusion9/runtime/logs/cfusion-out.log. Look for clues around the time of the last restart (and immediately before). -Mark Mark A. Kruger, MCSE, CFG (402) 408-3733 ext 105 Skype: markakruger www.cfwebtools.com www.coldfusionmuse.com www.necfug.com -Original Message- From: Ben Raccuia [mailto:bracc...@rc.com] Sent: Wednesday, February 09, 2011 1:10 PM To: cf-talk Subject: Re: JVM args, GC issues, performance tuning - CF9, Win2k8 ~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:342066 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm
Re: JVM args, GC issues, performance tuning - CF9, Win2k8
I did a talk recently at CFMeetup on CF JVM related matters. You can know what is going on inside CF JVM. Knowing is good it may not be the JVM args that are causing your problems, then you can get on with finding out what really is wrong. Else if the JVM shows it is having GC or memory issues well you can make educated adjustments rather than having a guess at it. If interested have a listen: http://experts.adobeconnect.com/p55663036/ HTH, Carl. ~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:342087 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm
Re: JVM args, GC issues, performance tuning - CF9, Win2k8
I did a talk recently at CFMeetup on CF JVM related matters. You can know what is going on inside CF JVM. Knowing is good it may not be the JVM args that are causing your problems, then you can get on with finding out what really is wrong. Else if the JVM shows it is having GC or memory issues well you can make educated adjustments rather than having a guess at it. If interested have a listen: http://experts.adobeconnect.com/p55663036/ HTH, Carl. We've been running into some issues while testing a new deployment. Servers are CF9 (hf1) on Win2k8 64-bit. Also seeing same problems on developer machines running Win7 64-bit, and WinXP (32-bit). We're seeing the problem on both CF9 Standard as well as CF9 Enterprise. We're having trouble getting the GC to maintain a happy state, service climbs and climbs, and eventually kacks the server. ~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:342088 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm
JVM args, GC issues, performance tuning - CF9, Win2k8
Hi all, We've been running into some issues while testing a new deployment. Servers are CF9 (hf1) on Win2k8 64-bit. Also seeing same problems on developer machines running Win7 64-bit, and WinXP (32-bit). We're seeing the problem on both CF9 Standard as well as CF9 Enterprise. We're having trouble getting the GC to maintain a happy state, service climbs and climbs, and eventually kacks the server. Wondering if any of the following suggestions for GC settings etc., still apply for CF9. http://www.coldfusionmuse.com/index.cfm/2005/10/28/jvm.gc http://www.petefreitag.com/articles/gctuning/ Did find this, which shows his solution, but no good discussion about setup based on server config: http://forums.adobe.com/thread/642057?tstart=0 And this one discusses 64-bit implementation, but again, no real guidelines for how to tune. http://groups.google.com/group/cfaussie/browse_thread/thread/3932bce486621abe/8b37ea8cbe0384b6?pli=1 And on GC itself: http://www.softwaresecretweapons.com/jspwiki/thelastjavagarbagecollectionguideyouwilleverneed Are there other resources that detail JVM args, GC settings, versions, etc., as relates to CF9? Is it advisable to change the GC type? CF9 ships with 6.0_14, which doesn't exhibit the class loader bug. We are seeing some mem lost when passing very large strings between objects. This is resolved if we package the strings inside of structs (pass by ref vs. pass by val), or write the process old-school. But, honestly, is that a solution? We've implemented a check for var scoping errors across the board, and have made sure that the output attribute on every function definition is there and set to either true or false (not left blank, or undefined). Thoughts? Or is time to give up, punch the clock and retire? Cheers, Kris ~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:335271 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm
Re: JVM args, GC issues, performance tuning - CF9, Win2k8
Please post your JVM config line from jvm.config I can most likely give you the pointers you need once I see your existing config arguments. Wil Genovese Sr. Web Application Developer/ Systems Administrator Wil Genovese Consulting wilg...@trunkful.com www.trunkful.com On Jul 12, 2010, at 4:11 PM, Kris Jones wrote: Hi all, We've been running into some issues while testing a new deployment. Servers are CF9 (hf1) on Win2k8 64-bit. Also seeing same problems on developer machines running Win7 64-bit, and WinXP (32-bit). We're seeing the problem on both CF9 Standard as well as CF9 Enterprise. We're having trouble getting the GC to maintain a happy state, service climbs and climbs, and eventually kacks the server. Wondering if any of the following suggestions for GC settings etc., still apply for CF9. http://www.coldfusionmuse.com/index.cfm/2005/10/28/jvm.gc http://www.petefreitag.com/articles/gctuning/ Did find this, which shows his solution, but no good discussion about setup based on server config: http://forums.adobe.com/thread/642057?tstart=0 And this one discusses 64-bit implementation, but again, no real guidelines for how to tune. http://groups.google.com/group/cfaussie/browse_thread/thread/3932bce486621abe/8b37ea8cbe0384b6?pli=1 And on GC itself: http://www.softwaresecretweapons.com/jspwiki/thelastjavagarbagecollectionguideyouwilleverneed Are there other resources that detail JVM args, GC settings, versions, etc., as relates to CF9? Is it advisable to change the GC type? CF9 ships with 6.0_14, which doesn't exhibit the class loader bug. We are seeing some mem lost when passing very large strings between objects. This is resolved if we package the strings inside of structs (pass by ref vs. pass by val), or write the process old-school. But, honestly, is that a solution? We've implemented a check for var scoping errors across the board, and have made sure that the output attribute on every function definition is there and set to either true or false (not left blank, or undefined). Thoughts? Or is time to give up, punch the clock and retire? Cheers, Kris ~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:335272 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm
Re: JVM args, GC issues, performance tuning - CF9, Win2k8
It's as default as it gets. No changes from initial install at all: An enterprise server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/ -Djava.security.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/coldfusion.policy -Djava.security.auth.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/neo_jaas.policy A standard server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/../ -Djava.security.policy={application.home}/../lib/coldfusion.policy -Djava.security.auth.policy={application.home}/../lib/neo_jaas.policy -Dcoldfusion.classPath={application.home}/../lib/updates,{application.home}/../lib,{application.home}/../gateway/lib/,{application.home}/../wwwroot/WEB-INF/cfform/jars,{application.home}/../wwwroot/WEB-INF/flex/jars -Dcoldfusion.libPath={application.home}/../lib Cheers, Kris On Mon, Jul 12, 2010 at 5:16 PM, Wil Genovese jugg...@trunkful.com wrote: Please post your JVM config line from jvm.config I can most likely give you the pointers you need once I see your existing config arguments. We've been running into some issues while testing a new deployment. Servers are CF9 (hf1) on Win2k8 64-bit. Also seeing same problems on developer machines running Win7 64-bit, and WinXP (32-bit). We're seeing the problem on both CF9 Standard as well as CF9 Enterprise. We're having trouble getting the GC to maintain a happy state, service climbs and climbs, and eventually kacks the server. Wondering if any of the following suggestions for GC settings etc., still apply for CF9. http://www.coldfusionmuse.com/index.cfm/2005/10/28/jvm.gc http://www.petefreitag.com/articles/gctuning/ Did find this, which shows his solution, but no good discussion about setup based on server config: http://forums.adobe.com/thread/642057?tstart=0 And this one discusses 64-bit implementation, but again, no real guidelines for how to tune. http://groups.google.com/group/cfaussie/browse_thread/thread/3932bce486621abe/8b37ea8cbe0384b6?pli=1 And on GC itself: http://www.softwaresecretweapons.com/jspwiki/thelastjavagarbagecollectionguideyouwilleverneed Are there other resources that detail JVM args, GC settings, versions, etc., as relates to CF9? Is it advisable to change the GC type? CF9 ships with 6.0_14, which doesn't exhibit the class loader bug. We are seeing some mem lost when passing very large strings between objects. This is resolved if we package the strings inside of structs (pass by ref vs. pass by val), or write the process old-school. But, honestly, is that a solution? We've implemented a check for var scoping errors across the board, and have made sure that the output attribute on every function definition is there and set to either true or false (not left blank, or undefined). ~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:335276 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm
Re: JVM args, GC issues, performance tuning - CF9, Win2k8
It's as default as it gets. No changes from initial install at all: An enterprise server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/ -Djava.security.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/coldfusion.policy -Djava.security.auth.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/neo_jaas.policy The point of using a 64-bit environment is that you can allocate lots more memory. In fact, you really have to allocate more memory than you'd use in a 32-bit environment, because many things stored in memory are twice as big! Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ http://training.figleaf.com/ Fig Leaf Software is a Veteran-Owned Small Business (VOSB) on GSA Schedule, and provides the highest caliber vendor-authorized instruction at our training centers, online, or onsite. ~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:335278 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm
Re: JVM args, GC issues, performance tuning - CF9, Win2k8
There are few setting you are missing. -Xms512m This sets the min heap size to the same size as the max heap size. The JVM is designed to auto size up from the min to max as needed however this can lead to problems on occasion. So far the best minds on this subject still recommend setting the min to equal the max. -XX:PermSize=192 This is for the memory space inside the JVM. new gen/old gen/eden/ etc. You can read all about the memory usage at Sun's (er Oracle's) website. In any case it is good to set the min size to the same as the max size for the same reasons above. This settings does that. Next are the GC intervals. These are by default not set so the JVM runs a GC once per minute. There are many reasons why this can and won't work depending on your setup, application memory usage and server load. In any case I've found that the following settings are a good start for setting the GC interval. The new setting is for every 10 minutes. -Dsun.rmi.dgc.client.gcInterval=60 -Dsun.rmi.dgc.server.gcInterval=60 Also remember that 64bit does use more memory to start with so even if your app(s) ran fine with just 512 on your 32bit server it's possible and even likely that you will need to increase or even double the memory setting. Just make sure you have enough physical RAM in the server and available for JVM usage. Enjoy, Wil Genovese Sr. Web Application Developer/ Systems Administrator Wil Genovese Consulting wilg...@trunkful.com www.trunkful.com On Jul 12, 2010, at 5:46 PM, Kris Jones wrote: It's as default as it gets. No changes from initial install at all: An enterprise server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/ -Djava.security.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/coldfusion.policy -Djava.security.auth.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/neo_jaas.policy A standard server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/../ -Djava.security.policy={application.home}/../lib/coldfusion.policy -Djava.security.auth.policy={application.home}/../lib/neo_jaas.policy -Dcoldfusion.classPath={application.home}/../lib/updates,{application.home}/../lib,{application.home}/../gateway/lib/,{application.home}/../wwwroot/WEB-INF/cfform/jars,{application.home}/../wwwroot/WEB-INF/flex/jars -Dcoldfusion.libPath={application.home}/../lib Cheers, Kris On Mon, Jul 12, 2010 at 5:16 PM, Wil Genovese jugg...@trunkful.com wrote: Please post your JVM config line from jvm.config I can most likely give you the pointers you need once I see your existing config arguments. We've been running into some issues while testing a new deployment. Servers are CF9 (hf1) on Win2k8 64-bit. Also seeing same problems on developer machines running Win7 64-bit, and WinXP (32-bit). We're seeing the problem on both CF9 Standard as well as CF9 Enterprise. We're having trouble getting the GC to maintain a happy state, service climbs and climbs, and eventually kacks the server. Wondering if any of the following suggestions for GC settings etc., still apply for CF9. http://www.coldfusionmuse.com/index.cfm/2005/10/28/jvm.gc http://www.petefreitag.com/articles/gctuning/ Did find this, which shows his solution, but no good discussion about setup based on server config: http://forums.adobe.com/thread/642057?tstart=0 And this one discusses 64-bit implementation, but again, no real guidelines for how to tune. http://groups.google.com/group/cfaussie/browse_thread/thread/3932bce486621abe/8b37ea8cbe0384b6?pli=1 And on GC itself: http://www.softwaresecretweapons.com/jspwiki/thelastjavagarbagecollectionguideyouwilleverneed Are there other resources that detail JVM args, GC settings, versions, etc., as relates to CF9? Is it advisable to change the GC type? CF9 ships with 6.0_14, which doesn't exhibit the class loader bug. We are seeing some mem lost when passing very large strings between objects. This is resolved if we package the strings inside of structs (pass by ref vs. pass by val), or write the process old-school. But, honestly, is that a solution? We've implemented a check for var scoping errors across the board, and have made sure that the output attribute on every function definition is there and set to either true or false (not left blank, or undefined). ~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:335279 Subscription:
RE: JVM args, GC issues, performance tuning - CF9, Win2k8
Kris, As dave said, I would start with increasing minimum and maximum heap size to something more likely for a 64bit server. 512megs is inadequate. Set it to at least 1024 (both of them) and other's have mentioned additional switches. -Mark Mark A. Kruger, MCSE, CFG (402) 408-3733 ext 105 Skype: markakruger www.cfwebtools.com www.coldfusionmuse.com www.necfug.com -Original Message- From: Kris Jones [mailto:kris.jon...@verizon.net] Sent: Monday, July 12, 2010 5:46 PM To: cf-talk Subject: Re: JVM args, GC issues, performance tuning - CF9, Win2k8 It's as default as it gets. No changes from initial install at all: An enterprise server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/ -Djava.security.policy={application.home}/servers/cfusion/cfusion-ear/cfusio n-war/WEB-INF/cfusion/lib/coldfusion.policy -Djava.security.auth.policy={application.home}/servers/cfusion/cfusion-ear/c fusion-war/WEB-INF/cfusion/lib/neo_jaas.policy A standard server CF9 hf1: java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/../ -Djava.security.policy={application.home}/../lib/coldfusion.policy -Djava.security.auth.policy={application.home}/../lib/neo_jaas.policy -Dcoldfusion.classPath={application.home}/../lib/updates,{application.home}/ ../lib,{application.home}/../gateway/lib/,{application.home}/../wwwroot/WEB- INF/cfform/jars,{application.home}/../wwwroot/WEB-INF/flex/jars -Dcoldfusion.libPath={application.home}/../lib Cheers, Kris On Mon, Jul 12, 2010 at 5:16 PM, Wil Genovese jugg...@trunkful.com wrote: Please post your JVM config line from jvm.config I can most likely give you the pointers you need once I see your existing config arguments. We've been running into some issues while testing a new deployment. Servers are CF9 (hf1) on Win2k8 64-bit. Also seeing same problems on developer machines running Win7 64-bit, and WinXP (32-bit). We're seeing the problem on both CF9 Standard as well as CF9 Enterprise. We're having trouble getting the GC to maintain a happy state, service climbs and climbs, and eventually kacks the server. Wondering if any of the following suggestions for GC settings etc., still apply for CF9. http://www.coldfusionmuse.com/index.cfm/2005/10/28/jvm.gc http://www.petefreitag.com/articles/gctuning/ Did find this, which shows his solution, but no good discussion about setup based on server config: http://forums.adobe.com/thread/642057?tstart=0 And this one discusses 64-bit implementation, but again, no real guidelines for how to tune. http://groups.google.com/group/cfaussie/browse_thread/thread/3932bce486621ab e/8b37ea8cbe0384b6?pli=1 And on GC itself: http://www.softwaresecretweapons.com/jspwiki/thelastjavagarbagecollectiongui deyouwilleverneed Are there other resources that detail JVM args, GC settings, versions, etc., as relates to CF9? Is it advisable to change the GC type? CF9 ships with 6.0_14, which doesn't exhibit the class loader bug. We are seeing some mem lost when passing very large strings between objects. This is resolved if we package the strings inside of structs (pass by ref vs. pass by val), or write the process old-school. But, honestly, is that a solution? We've implemented a check for var scoping errors across the board, and have made sure that the output attribute on every function definition is there and set to either true or false (not left blank, or undefined). ~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:335280 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm