Recommended Settings for the Linux on AMD64/EM64T JVM
[AMD] [AMD64] [AMD_64] [Downl] [EM64T] [Java Virtual Machine] [JDK] [SDK] [x86_64]
Related:
- DB2-z/OS:Recommended Settings for the Linux on System z JVMSymptom Recommended Settings for the IBM JVM for the SAP...
- DB2-z/OS: Recommended Settings for the IBM zLinux 142 J9 JVMSymptom Recommended Settings for the IBM 1.4.2 JVM (J9) for...
- New IBM JDK 1.4.2 for Linux on System zSymptom For SAP NetWeaver 2004 and SAP NetWeaver 7.0 new...
- Recommended Settings for NW 7.0 >= SR2 for the AIX JVM (J9)Symptom Recommended Settings for the IBM JVM (J9) for SAP...
- Recommended Settings for NW04 >= SP14, NW 7.0 >= SP6 on AIXSymptom Recommended Settings for the IBM 1.4.2 JVM (J9) for...
- Supported SAP GUI platformsSymptom Preface This note contains information on platforms supported by...
Symptom
Recommended Settings for the IBM JVM for installing/upgrading SAP WebAS 640/700 J2EE Engine on AMD64/EM64T Linux.
CAUTION: This note is updated regularly. We recommend that you check it periodically for changes.
Other terms
X86_64, AMD, AMD64, AMD_64, EM64T, SDK, JDK, Java Virtual Machine, Download, IBM, JVM, AMD-Linux, Intel XEON
Reason and Prerequisites
Changes specific to SR13:
With SR13, there were some fixes in the orb functionality which also affect SAP patch levels.Before applying SR13, it is mandatory to read and apply SAP Note 1306760.
Also, high native memory usage by the java process was addressed by IBM.
Changes specific to SR12:
With SR12, IBM VM now supports heapdumps which can be used in Eclipse Memory Analyzer (MAT). An additional VM parameter is required to create usable dumps in case of OOM.
Starting with SR12 new (the latest) JCE Policy Files are required!
Changes specific to SR10:
With SR10, IBM introduces a new VM technology (2.3) which is shipped in parallel to the older technology (2.2) known from previous releases. This step is the first one in the migration to 2.3, which should be complete with SR12. As several issues from the past have only been fixed with 2.3 and as IBM will only continue to support 2.3 in the future, we urge customers to move to the new engine as soon as possible to benefit from both – fixes and continued support from IBM.
To use the new technology for SR10, a special parameter has to be set. This parameter is provided in the section below with the other settings. Note that this parameter is mandatory. If this parameter is not present, the VM will continue to use the older 2.2 technology.
Relevant for all JDK upgrades:
After the SDK upgrade you have to install the “Unlimited Strength Jurisdiction Policy Files” manually again, because these are overwritten during the SDK upgrade (see SAP note 754699, 739043).
In case you use Wily Introscope, please make sure to read note 1149214.
Solution
Instructions for all NetWeaver releases
Make sure that you have installed the required SDK.
Please see SAP Note 1172419 for more details on therequiredIBM JDK and how to obtain it.
Prerequisite to install SR13 is the implementation of SAP note 1306760 (Introducing missing iiop functionality for IBM JDK 1.4.2 SR13).
Please be aware that you always have to reinstall JCE policy files.
Please always make sure to follow SAP Note 718901.
Prepare system to run with J9 2.3 engine
To use the new J9 2.3 engine first shipped with IBM JDK 1.4.2 SR10, you have to add the following environment variable for user <SID>adm:
IBM_JAVA_OPTIONS=-Xjvm:j9vm23
Please add the environment variable to the <SID>adm user environment in the file “/home/<sid>adm/.j2eeenv_<hostname>.csh”
setenv IBM_JAVA_OPTIONS “-Xjvm:j9vm23″
If IBM_JAVA_OPTIONS is already set e.g.
setenv IBM_JAVA_OPTIONS “-Xmx256M”
replace it with:
setenv IBM_JAVA_OPTIONS “-Xmx256M -Xjvm:j9vm23″
Add to the file “.j2eeenv_<hostname>.sh”
IBM_JAVA_OPTIONS=”-Xjvm:j9vm23″; export IBM_JAVA_OPTIONS
If IBM_JAVA_OPTIONS is already set e.g.
IBM_JAVA_OPTIONS=”-Xmx256M”; export IBM_JAVA_OPTIONS
replace it with:
IBM_JAVA_OPTIONS=”-Xmx256M -Xjvm:j9vm23″; export IBM_JAVA_OPTIONS
Logoff and login again with the <SID>adm user and check if the environment is set (env command).
Recommended settings for the J2EE server(s):
Currently we recommend the following Java settings for the J2EE server(s) to be set with the configtool
‘cluster-data’->’instance_IDxxxxxxx’->’server_IDxxxxxxxxx’-> General
-Xjvm:j9vm23
new with SR10. This switches the VM to use the new 2. 3 technology
-Xgcpolicy:gencon
concurrent and generational garbage collector (GC)
-Xms2048m
minimum heapsize
-Xmx2048m
maximum heapsize
-Xmn400m
min and max heapsize for young objects (nursery)
-verbose:gc
verbose output of garbage collector activities
-Xdisableexplicitgc
to prevent superfluous System GCs triggered by the application
-Xsoftrefthreshold1
The parameter change from -Xsoftrefthreshold0 to -Xsoftrefthreshold1 is recommended for SR12 or newer. This parameter change will reduce the number of loaded classes/classloaders. Main results are shorter class unloading times and reduced GC pause times.
In addition there will be a significant native memory footprint reduction with SR12. This effect is covered in SR13 already.
Please also implement SAP note 905211 to avoid performance degradation(PCD) due to changed soft reference handling by the GC (-Xsoftrefthreshold).
-Xthr:minimizeUserCPU
this disables the VM using CPU cycles in idle mode which resulted in e.g. the dispatcher showing high CPU load even in idle times. This should also be set on the server node.
Note that his option is only for SR12 and later.
-Xdump:system:events=systhrow,filter=java/lang/OutOfMemoryError,request=exclusive+prepwalk
the JVM will write a system dump in case of an OOM. This can be used for the analysis with the Eclipse Memory Analyzer. For more information see SAP note 1263258.
Recommended settings for the J2EE dispatcher(s):
Please set with the configtool:
‘cluster-data’->’instance_IDxxxxxxx’->’dispatcher_IDxxxxxxxxx’-> General
-Xjvm:j9vm23
new with SR10. This switches the VM to use the new 2. 3 technology
-Xgcpolicy:gencon
concurrent and generational garbage collector (GC)
-Xms200m
minimum heapsize
-Xmx200m
maximum heapsize
-Xmn70m
min and max heapsize for young objects (nursery)
-verbose:gc
verbose output of garbage collector activities
-Xthr:minimizeUserCPU
this disables the VM using CPU cycles in idle mode which resulted in e.g. the dispatcher showing high CPU load even in idle times. This should also be set on the server node.
Note that his option is only for SR12 and later.
-Xdump:system:events=systhrow,filter=java/lang/OutOfMemoryError,request=exclusive+prepwalk
the JVM will write a system dump in case of an OOM. This can be used for the analysis with the Eclipse Memory Analyzer. For more information see SAP note 1263258.
Further recommendations:
In case the J2EE Engine dumps with a javacore file stating “signal xx received”, you need to prepare your system to get the right error documentation for SAP/IBM support. Please follow the instructions in SAP Note 852567. If you disable the SAP signal handler you also have to switch off the signal handler of the IBM JVM either by setting the environment variable “IBM_NOSIGHANDLER” to “TRUE” or by specifying the command line option “-Xrs:all” prior to starting the J2EE server.
History:
SR12:
new option “-Xthr:minimizeUserCPU”
new option “-Xdump…” for proper heapdumps usable by MAT
new policy files
SR10:
new Option “-Xjvm:j9vm23″ to use new 2.3 technology
SR6:
The Java options “-Xtrace”, “-Xsoftrefthreshold3″ were removed from the list “Recommended settings for the J2EE server(s)”