页面树结构
转至元数据结尾
转至元数据起始


在Smartbi配置时,需要为Smartbi配置一定的JVM参数。 比如Smartbi在运行过程中,需要占用一定JVM内存,若需要的JVM内存等分配不够,则容易产生内存溢出(outofmemory)等问题。

JVM相关设置项的配置是通过应用服务器进行配置的。 

JVM参数

为Smartbi配置的JVM参数有哪些呢?可以通过下表查看。一般只涉及到设置 -Xms、-Xmx、-XX: PermSize、-XX: MaxPermSize、 -XX:+HeapDumpOnOutOfMemoryError五个参数。各参数详情如下:

参数名称

建议值

描述

-Xms

512m以上

初始化“堆”大小

-Xmx

16384m及以上

当JVM运行过程中出现java.lang.OutOfMemoryError: Heap space时,应当增大此值,或者使用集群配置减轻并发压力

“堆”最大允许大小,指定Java程序中允许使用的最大内存数

-Xloggc

可以在跟踪内存溢出时打开

生成JVM垃圾回收日志,打开这个选项可以跟踪服务器是否存在内存泄漏。IBM JDK(例如WebSphere)生成的文件需要2.2.6中提及的IBM分析工具

-XX:PermSize

64m或以上

JVM为永久生成对象,包括类、方法定义等(Permanate generation)的内存区大小


-XX:MaxPermSize

128m或以上

当JVM运行过程中出现java.lang.OutOfMemoryError: PermGen space时应当增大此值

-XX:+HeapDumpOnOutOfMemoryError无需设置具体数值,但必须预留该参数

该参数必须添加,当发生内存溢出时,该参数用于存储堆信息,可以用来分析内存溢出的原因;

若部署时未进行添加,可参考方法“添加-XX:+HeapDumpOnOutOfMemoryError参数

-Xss

一般不需要设置该参数,只有当递归层次过多时应该设置为128k或以上

为线程保留的堆栈大小

-Dfile.encoding

GBK或UTF-8

设置JVM运行时的默认字符集

在Unix环境下运行Smartbi时通常需要设置为GBK或UTF-8(操作系统必须预先安装该语言区域)才可以正常的显示中文

-Duser.timezone=Asia/Chongqing

一般不需要设置,但是当出现时间转换字符串后相差八小时等时,设置为Asia/Chongqing

设置JVM的默认时区

在某些服务器上时间转换为字符串输出(例如灵活分析中查询的数据)可能出现相差了八个小时,这是因为JVM无法正确的判断服务器的时区信息

-Djava.awt.headless=true建议增加启用headless模式


当报错信息是 【outofmemory: permGen space】  时,需要增大-XX:MaxPermSize 的值

当报错信息是 【outofmemory: java heap space】 时,需要增大 -Xmx 的值

当报错信息是【JVM没有设置-XX:HeapDumpOnOutOfMemoryError,将导致系统宕机后无法跟踪解决时,需要添加参数“-XX:+HeapDumpOnOutOfMemoryError”

当报错信息是【JVM(XMX)设置超出服务器内存:xxx,当前值为XXX。建议修改设置项的值】时,需要减少该设置项的值

当报错信息是【JVM没有配置headless参数】时,建议修改JVM参数配置,增加-Djava.awt.headless=true



配置JVM参数

不同引用服务器、不同操作系统、甚至不同的应用服务器版本,配置JVM参数的文件、方式都可能不同,具体可以通过下面的内容进行学习。

由于一般配置JVM参数只需要设置 -Xms 、-Xmx 、 和-XX: MaxPermSize三个参数,有时候还包含 -XX:PermSize,因此以下内容只对基本的这几个设置项进行设置


注意:此文档只是说明了如何去配置这几个参数,对于部署smartbi来说,在部署的时候对于JVM是有一些必要的参数要配置的。请参考:在各种应用服务器上手工部署

Tomcat

一、Windows系统

A.如果Tomcat应用服务器是使用Smartbi exe安装包进行安装的,那么这个Tomcat是smartbi自带的,是经过改造的。设置JVM参数的步骤如下:

1.关闭应用服务器

2.进入Tomcat\bin目录,使用编辑方式打开startup.cmd(可以使用notepad++、UltraEdit等编辑工具)

3.在startup.cmd中最下端找到以下内容

修改其中的-Xms ,-Xmx , -XX:MaxPermSize,比如将Xms设置为512m,Xmx修改为 10240m, MaxPermSize修改为512m。修改后如下:


B.如果Smartbi是使用war包部署的,也就是说Tomcat应用服务器是自行安装的,那么设置步骤如下:

1.关闭应用服务器

2.进入Tomcat\bin目录。在windows上tomcat是通过startup.bat进行启动的,启动时需要使用到tomcat的一些启动信息。可以用编辑方式打开startup.bat,找到set "EXECUTABLE 设置项,看看该设置项是指向哪个文件,一般是catalina.bat,那么tomcat的启动信息就是在catalina.bat中定义的。

3.找到步骤2中所指向的文件,一般是catalina.bat。用编辑方式打开catalina.bat

在catalina.bat中,一般前面会有一些注释,这些注释列出了此脚本中的一些设置项。其中JAVA_OPTS就是我们接下来即将进行设置的设置项。(如果没有JAVA_OPTS,而只有JAVA_OPTIONS,那么设置项就是JAVA_OPTIONS,下面的内容中的JAVA_OPTS都换成JAVA_OPTIONS)


4.首先在catalina.bat中,搜索“JAVA_OPTS”,检查一下该文件中是否已经对该设置项进行了设置。


若文件中已经有对该设置项进行设置,检查一下设置项的内容中是否包含 -Xms ,-Xmx, -XX:PermSize 和 -XX: MaxPermSize。如果已经存在,则可以直接修改对应项的值。

如下:已存在

对其直接修改值,比如设置-Xms为256m,-Xmx为10240m,-XX:MaxPermSize为1024m


5.如果检查过整个catalina.bat,发现没有对相应的设置项有进行过设置。那么可以在catalina.bat中注释下方的第一行,添加如下设置(该行添加的位置不要求必须在这个位置)

set JAVA_OPTS = %JAVA_OPTS% -Xms256m -Xmx10240m -XX:MaxPermSize=1024m

如果是tomcat6.0以上,也可使用

set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=GBK -Duser.region=CN -Duser.language=zh -Djava.awt.headless=true -Xms8192m -Xmx8192m -XX:MaxPermSize=512m


二、Linux系统

Linux操作系统上部署Smartbi只能使用war包部署,应用服务器都是自行部署的。设置JVM参数步骤如下:

1.关闭应用服务器

2.进入Tomcat\bin目录

在linux上tomcat是通过startup.sh进行启动的,启动时需要使用到tomcat的一些启动信息。可以用编辑方式打开startup.sh,找到 EXECUTABLE 设置项,看看该设置项是指向哪个文件,一般是catalina.sh,那么tomcat的x相关启动信息就是在catalina.sh中定义的。

3.找到步骤2中所指向的文件,一般是catalina.sh。用编辑方式打开catalina.sh

在catalina.sh中,一般前面会有一些注释,这些注释列出了此脚本中的一些设置项。其中JAVA_OPTS就是我们接下来即将进行设置的设置项。(如果没有JAVA_OPTS,而只有JAVA_OPTIONS,那么设置项就是JAVA_OPTIONS,下面的内容中的JAVA_OPTS都换成JAVA_OPTIONS)

4.首先在catalina.sh中,搜索“JAVA_OPTS”,检查一下该文件中是否已经对该设置项进行了设置。


若文件中已经有对该设置项进行设置,检查一下设置项的内容中是否包含 -Xms ,-Xmx, -XX:PermSize 和 -XX: MaxPermSize。如果已经存在,则可以直接修改对应项的值。

如下:已存在

对其直接修改值,比如设置-Xms为256m,-Xmx为10240m,-XX:MaxPermSize为1024m


5.如果检查过整个catalina.sh,发现没有对相应的设置项有进行过设置。那么可以在catalina.sh中注释下方的第一行,添加如下设置(该行添加的位置不要求必须在这个位置)


JAVA_OPTS = "$JAVA_OPTS -Xms256m -Xmx10240m -XX:MaxPermSize=1024m" (注意有没有双引号)



另外,Tomcat并不建议JVM参数配置在catalina.sh文件中,通常是配置在tomcat\bin\setenv.sh这个文件中。若是catalina.sh文件中没有,可以找一下这个文件


注:这里有人会问需不需要配置JAVA_HOME,这个是tomcat自身运行需要的参数。如果电脑上有进行JAVA环境设置,这里不设置的话就是使用系统的JAVA环境变量;我们也可以自己通过配置JAVA_HOME指定Tomcat使用的jdk。总得来说,和JAVA_OPTS有一定的关联,但是不包含在配置JVM参数这一项中。

Webshpere

Websphere中设置JVM参数可以在控制台中进行控制。(下面以Websphere8为例)

1.在浏览器中输入websphere控制台地址,进入控制台界面。


2.点击左侧的Servers -> Server Types -> WebSphere application servers。

如果是中文版的控制台,点击左侧的 服务器 -> 应用程序服务器


3.在右侧点击对应的server,如server1


进入设置界面


4.展开右下角的Server Infrastructure -> Java and Process Management,点击Process definition

在中文版控制台界面中,展开右下角的 服务器基础结构  -> Java和进程管理 ,点击 进程定义


进入进程定义界面

5.在进程定义界面,点击右侧的 Java Virtual Machine

在中文版控制台界面中,点击右侧的 Java 虚拟机


进入JAVA虚拟机设置界面


6.在JAVA虚拟机设置界面中,有三个设置项

(1)Initial heap size,即JVM参数中的Xms,直接输入数值即可

(2)Maximum heap size,即JVM参数中的Xmx,直接输入数值即可

(3)Generic JVM arguments ,即JVM参数中的其他参数设置。在下方的输入框中输入 -XX:PermSize=256M  -XX:MaxPermSize=512m,如下:


以上三个设置项在中文版控制台界面中对应的设置项分别是

(1)初始堆大小

(2)最大堆大小

(3)通用JVM实参


7.保存设置项,重启动应用即可。

Weblogic

一、Windows系统

1.关闭应用服务器

2.进入Weblogic目录下对应 domain的启动目录 ,一般是 <domain>/bin目录(注意:这里的<domain>在实际上应该是对应的domain名称)

3.在Windows系统上,对应的配置项是在setDomainEnv.cmd中进行配置的。用编辑方式打开setDomainEnv.cmd

4.在setDomainEv.cmd中依次搜索,找到Xms、Xmx、XX:PermSize、XX:MaxPermSize,然后修改其值


二、Linux系统

1.关闭应用服务器

2.进入Weblogic目录下对应 domain的启动目录,一般是 <domain>/bin目录(注意:这里的<domain>在实际上应该是对应的domain名称)

3.在Windows系统上,对应的配置项是在setDomainEnv.sh中进行配置的。用编辑方式打开setDomainEnv.sh

4在setDomainEv.sh中依次搜索,找到Xms、Xmx、XX:PermSize、XX:MaxPermSize,然后修改其值

Jboss

1.关闭应用服务器;
2.用编辑方式打开run.sh/cmd文件;
3.在JAVA_OPTIONS变量中增加 -Xms8192m -Xmx8192m -XX:PermSize=256M  -XX:MaxPermSize=512m
4.重启应用服务器。

  • 无标签