解决ODI 12C Studio 运行缓慢问题
一、配置 ODI 12C Studio
1.1 修改ODI Studio process的-Xms和-Xmx
ide.conf: modifying the initial Heap size (-Xms), and/or maximum Heap size (-Xmx) of the ODI Studio Java process.
路径: "$ODI_HOME\jdeveloper\ide\bin\ide.conf (我的路径为D:\Oracle\Middleware\Oracle_Home\jdeveloper\ide\bin\ide.conf)
# Set the default memory options for the Java VM which apply to both 32 and 64-bit VM's.
# These values can be overridden in the user .conf file, see the comment at the top of this file.
AddVMOption -Xms128M
AddVMOption -Xmx800M
不过此文件头有这么一段:
# This configuration file is not intended to be modified by the user. Doing so # may cause the product to become unstable or unusable. If options need to be # modified or added, the user may do so by modifying the custom configuration files # located in the user's home directory. The location of these files is dependent # on the product name and host platform, but may be found according to the # following guidelines: # # Windows Platforms: # The location of user/product files are often configured during installation, # but may be found in: # %APPDATA%\<product-name>\<product-version>\product.conf # %APPDATA%\<product-name>\<product-version>\jdev.conf # # Unix/Linux/Mac/Solaris: # $HOME/.<product-name>/<product-version>/product.conf # $HOME/.<product-name>/<product-version>/jdev.conf # # In particular, the directives to set the initial and maximum Java memory # and the SetJavaHome directive to specify the JDK location can be overridden # in that file instead of modifying this file. # #-----------------------------------------------------------------------------
因此我们去找 %APPDATA%\<product-name>\<product-version>\product.conf
我的为 C:\Users\XQZT\AppData\Roaming\odi\1.0.0.0.0\product.conf,初始内容如下
SetJavaHome C:\Program Files\Java\jdk1.7.0_67
将初始堆和最大堆大小修改为原来的两倍
SetJavaHome C:\Program Files\Java\jdk1.7.0_67
AddVMOption -Xms256M
AddVMOption -Xmx1600M
1.2 修改ODI Studio process的MaxPermSize
"odi.conf" file : modifying the other Java properties of the ODI Studio process.
路径:"$ODI_HOME\odi\studio\bin\odi.conf"
(我的路径为 D:\Oracle\Middleware\Oracle_Home\odi\studio\bin\odi.conf)
IncludeConfFile ../../../jdeveloper/ide/bin/ide.conf
AddVMOption -Dproduct.cluster.dirs=..
AddVMOption -Doracle.fmw.dir=odi/studio/
AddVMOption -XX:MaxPermSize=256M
可以修改 AddVMOption -XX:MaxPermSize
二、配置代理agent的 ODI_INIT_HEAP and ODI_MAX_HEAP
D:\Oracle\Middleware\Oracle_Home\user_projects\domains\odi_domain\bin\setODIDomainEnv.cmd (setODIDomainEnv.sh)
In Oracle Data Integrator 12c the ODI_INIT_HEAP and ODI_MAX_HEAP parameters are located in the setODIDomainEnv script file within an ODI domain bin directory.
修改里面的内容
set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m
set WLS_MEM_ARGS_32BIT=-Xms512m –Xmx512m
------
set MEM_PERM_SIZE_64BIT=-XX:PermSize=128m
set MEM_PERM_SIZE_32BIT=-XX:PermSize=128m
说明:
JVM主要管理两种类型的内存:堆和非堆。
方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。
堆是运行时数据区域,所有类实例和数组的内存均从此处分配。
-Xms128m JVM初始分配的堆内存
-Xmx512m JVM最大允许分配的堆内存,按需分配
-XX:PermSize=64M JVM初始分配的非堆内存
-XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配
参考:
http://www.oracle.com/us/products/middleware/data-integration/odi-performance-guide-wp-2147067.pdf