页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

F-JVM等相关配置

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

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

 

JVM参数

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

参数名称

建议值

描述

-Xms512mXms

512m以上

初始化"堆"大小初始化“堆”大小

-Xmx1200mXmx

32位JDK建议1200m
64位JDK根据机器配置使用5000m或以上 16384m及以上

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

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

-Xloggc:a.log

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

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

-XX:PermSize=64m

64m或以上

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

-XX:MaxPermSize=128m

128m或以上

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

-Xss128kXss

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

为线程保留的堆栈大小

-Dfile.encoding=GBK

GBK或UTF-8

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

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

-Duser.timezone=Asia/Chongqing

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

设置JVM的默认时区

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

 

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

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

 

 

配置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中最下端找到以下内容

...

Image Added

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

...

Image Added

 

 

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

1.关闭应用服务器

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

...

Image Added

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

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

...

Image Added

 

4.首先在catalina.

...

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

Image Added

 

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

如下:已存在

...

Image Added

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

...

Image Added

 

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

...

Image Added

 

二、Linux系统

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

1.关闭应用服务器

2.进入Tomcat\bin目录

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

...

Image Added

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

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

...

Image Added

4.首先在catalina.

...

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

Image Added

 

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

如下:已存在

...

Image Added

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

...

Image Added

 

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

 

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

...

Image Added

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

 

Webshpere

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

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

...

Image Added

 

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

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

...

Image Added

 

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

...

Image Added

 

进入设置界面

...

Image Added

 

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

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

...

Image Added

 

进入进程定义界面

...

Image Added

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

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

...

Image Added

 

进入JAVA虚拟机设置界面

...

Image Added

 

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,如下:

...

Image Added

 

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

(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,然后修改其值

...

Image Added

 

二、Linux系统

1.关闭应用服务器

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

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

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

...

Image Added

Jboss

1.关闭应用服务器;
2.

...

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