历史版本6 :健康巡检 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本
10.0.17

1.2 功能简介

本文将简单介绍 系统检查 功能的检查逻辑和检查项。

注1:若无法检测出当前配置,当前配置为空,修改意见为「暂不支持此项」,点击状态后面的「详情」,即可查看具体原因。

注2:若所有检查项均没有问题时,会提示:当前系统运行良好,无需调整。

注3:若系统为集群环境,在「系统检查」页面左上角可选择具体的集群节点进行检测。

2. 内存检测项编辑

内存检测项的检测逻辑如下表所示:

序号检查项
检查内容检查结果改进建议
1单机多进程检测报表工程所在的系统中,除报表进程外的其他进程,占用的内存是否大于总物理内存的1/8若不大于总物理内存的1/8,则该项检查合格,进入第 2 项检查-
若大于总物理内存的1/8,则认为该系统为单机多进程系统,系统稳定性较差,存在宕机隐患,且无法进行后续的合理推荐,结束检测流程

当前系统疑似为多进程,存在宕机隐患,建议仅保留报表工程并合理配置相关参数。

建议关闭系统中其他无用进程,仅保留报表工程相关的进程。

2垃圾回收器检测虚拟机垃圾回收器是否为ParallelScavenge垃圾回收器类型为ParallelScavenge,则该项检查合格,进入第 3 项检查-
垃圾回收器类型不是ParallelScavenge,提示修改,并跳转至第 6 项检查

建议JVM使用垃圾回收器类型为 ParallelScavenge

请参考 2.1 节配置垃圾回收器类型

3堆内内存推荐值
由于存在云端运维数据中 GC 不够14天、GC 数据异常等问题,会导致无法计算出准确的系统堆内内存推荐值,所以需要判断是否存在推荐值系统存在堆内内存推荐值,则该项检查合格,进入第 4 项检查-
系统存在堆内内存推荐值,生成提示,并跳转至第 6 项检查系统运行数据不足,暂时无法进行配置推荐
4堆内内存只有在当前堆内存不够用时才会针对防止内存溢出的宕机进行推荐,所以需要先检测当前系统的堆内内存是否小于系统堆内内存推荐值若堆内内存当前值小于推荐值,则该项检查合格,进入第 5 项检查-
若堆内内存当前值大于推荐值,则跳转至第 6 项检查-
5物理内存-推荐堆内存单机单进程下,整个物理机内存=堆内存推荐值+堆外NIO所需内存+堆外fineIO所需内存+预留内存,预留内存暂时定为 1/4 物理内存若检测出「当前物理内存-推荐堆内存-5G」≥「1/4物理内存」,生成提示,并跳转至第 7 项检查

推荐当前系统的堆内内存增加到系统推荐的堆内内存

请参考 2.2 节配置堆内内存

若检测出「当前物理内存-推荐堆内存-5G」<「1/4物理内存」,生成提示,且无法进行后续的合理推荐,结束检测流程

建议物理内存增加至「(推荐的堆内内存+5G)*4/3*4」以上的值

请增大物理内存

6物理内存-当前配置堆内存在无堆内存推荐值(GC日志不足、GC日志不准确、非PS垃圾回收器几种情况下均无堆内存推荐值)、堆内存推荐值不大于当前对内存设置值时,暂时无法准确判断出当前系统不发生堆内溢出的堆内存用量,所以无法对堆内存做用量推荐,只能对堆外的内存模型进行检测和配置建议若检测出「当前物理内存-当前配置堆内存-5G」≥「1/4物理内存」,说明当前内存配置在配置好规定的堆外内存后即可消除堆外内存宕机风险,则该项检查合格,进入第 4 项检查-
若检测出「当前物理内存-当前配置堆内存-5G」<「1/4物理内存」,无法判定是xmx配置过大还是物理内存较小,只能生成提示,且无法进行后续的合理推荐,结束检测流程

当前系统内存配置不合理,存在宕机风险,建议检查后修改相关配置

请参考 2.2 节调小堆内内存,请增大物理内存

7堆外内存检测堆外内存设置大小是否超过2G若当前堆外内存未超过2G,则该项检查合格,进入第 8 项检查
若当前堆外内存超过了2G/未配置堆外内存,则生成提示,并跳转至第 8 项检查

建议堆外内存(Maxdirectmemory)设置为2G

请参考 2.3 节修改堆外内存

8fineIO读内存检测fineIO读内存(-Dfineio.read_mem_limit)参数配置大小是否超过2G若当前fineIO读内存未超过2G,则该项检查合格,进入第 9 项检查-
若当前fineIO读内存超过了2G,则生成提示,并跳转至第 9 项检查

建议-Dfineio.read_mem_limit参数设置为2G

请参考 2.4 节修改 fineIO读内存

9fineIO写内存检测fineIO写内存(-Dfineio.write_mem_limit)参数配置大小是否超过1G若当前fineIO写内存未超过1G,则该项检查合格,结束检测流程-
若当前fineIO写内存超过了1G,则生成提示,结束检测流程

建议-Dfineio.write_mem_limit参数设置为1G

请参考 2.5 节修改 fineIO写内存

2.1 修改垃圾回收器类型

本节以工程部署在 Tomcat 上为例, 介绍设置垃圾收集器为Parallel Scavenge(并行收集器)的方法。

Windows 系统:打开%Tomcat%/bin目录下的catalina.bat文件进行配置,配置完成后重启工程即可生效。

set JAVA_OPTS= -XX:+UseParallelGC

Linux:打开%Tomcat%/bin目录下的catalina.sh文件进行配置,配置完成后重启工程即可生效。

JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelGC"

2.2 修改堆内内存

堆内内存的修改方法,请参见下方表格文档:

参数介绍服务器类型参考文档

-Xmx 参数:最大堆内内存

-Xms 参数:初始化内存大小

注1:Xmx/Xms 与数字之间不要有空格

注2:建议配置Xms=Xmx,以防止内存扩容失败情况

Tomcat 服务器
Tomcat 服务器内存修改
WebLogic 服务器WebLogic 服务器内存修改
WebSphere 服务器WebSphere 服务器
JBoss 服务器JBoss 服务器
Resin 服务器Resin 服务器内存修改

2.3 修改堆外内存

堆外内存由-XX:MaxDirectMemorySize这个参数来设置。本文以工程部署在 Tomcat 上为例介绍修改方法。

Windows:修改%Tomcat%/bin目录下的 catalina.bat 文件,增加配置,配置完成后重启工程。

set JAVA_OPTS=%JAVA_OPTS% -XX:MaxDirectMemorySize=2g

Linux/Unix:修改%Tomcat%/bin目录下的 catalina.sh 文件,增加配置,配置完成后重启工程。

JAVA_OPTS="$JAVA_OPTS -XX:MaxDirectMemorySize=2g"

如下图所示:

2.4 修改 fineIO 读内存

fineIO 读内存由-Dfineio.read_mem_limit这个参数来设置。请根据自身工程部署情况选择修改方法。本节展示 Tomcat 环境下设置 fineIO读内存 的步骤。

读内存的默认单位为 GB,支持小数,但不支持使用 g、m 等。建议读内存为写内存的2-3倍,缓存大小建议与写内存大小一致。

Windows:%Tomcat%/bin目录下的catalina.bat文件中新增配置,配置完成后重启工程。

set JAVA_OPTS=%JAVA_OPTS% -Dfineio.read_mem_limit=2

Linux:%Tomcat%/bin目录下的catalina.sh文件中新增配置,配置完成后重启工程。

JAVA_OPTS="$JAVA_OPTS -Dfineio.read_mem_limit=2"

2.5 修改 fineIO 写内存

fineIO 写内存由-Dfineio.write_mem_limit这个参数来设置。请根据自身工程部署情况选择修改方法。本节展示 Tomcat 环境下设置 fineIO写内存 的步骤。

写内存的默认单位为 GB,支持小数,但不支持使用 g、m 等。建议读内存为写内存的2-3倍,缓存大小建议与写内存大小一致。

Windows:%Tomcat%/bin目录下的catalina.bat文件中新增配置,配置完成后重启工程。

set JAVA_OPTS=%JAVA_OPTS% -Dfineio.write_mem_limit=1

Linux:%Tomcat%/bin目录下的catalina.sh文件中新增配置,配置完成后重启工程。

JAVA_OPTS="$JAVA_OPTS -Dfineio.write_mem_limit=1"

3. 其他检查项编辑

检查结果和改进建议具体如下表所示:

检查项
当前配置检测出问题标准改进建议
磁盘剩余空间显示工程所在磁盘当前剩余空间工程所在磁盘剩余空间小于 5GB系统所在磁盘剩余空间建议不小于5G,请及时进行清理
垃圾回收器类型显示当前垃圾回收器类型GC 类型不为 ParallelScavenge建议 JVM 使用垃圾回收器类型为 ParallelScavenge
请参考 2.1 节进行修改
堆内老年代与新生代的比例显示当前堆内老年代与新生代大小比例堆内老年代与新生代大小比例不为 2建议 JVM 老年代与新生代大小比例设置为 2
请参考 3.1 节进行修改
栈空间显示当前 -Xss 的值-Xss 的值大于 512建议单线程使用栈空间不超过 512 KB
请参考 3.2 节进行修改
JDK 版本显示当前 JDK 版本JDK 版本低于 1.8.101 版本建议使用「JDK8」中 1.8.0_181 及以上版本
finedb多工程共用

与其他工程共用 finedb ,如:

1)两个及以上报表工程共用

2)两个及以上 BI 工程共用

3)报表 BI 集成工程与报表单独工程共用

4)报表 BI 集成工程与 BI 单独工程共用

5)报表工程与 BI 工程共用

建议一个 finedb 仅对应一个工程,杜绝多个工程共用一个 finedb
请参考 配置外接数据库 文档迁移 finedb
finedbHSQL使用内置数据库建议将 finedb 迁移至更稳定的外接数据库中
请参考 配置外接数据库 文档迁移 finedb
DisableExplicitGC 参数已配置配置 DisableExplicitGC 参数时提示建议取消该 DisableExplicitGC 参数配置
请参考 3.3 节取消参数配置
headless 模式未启用未配置 -Djava.awt.headless=true 时提示建议配置 -Djava.awt.headless=true 以启用 headless 模式
请参考 3.4 节进行配置
日志级别DEBUG当前日志级别配置为 DEBUG 级别时提示建议设置日志级别为 ERROR
请参考 日志简介 2.3 节设置日志级别

3.1 设置堆内老年代与新生代大小比例

堆内老年代与新生代大小比例建议为 2(-XX:NewRatio=2,JVM的默认值);NewRatio 大小正常生效需要用户不限制新生代大小。

在设置-Xmx、-Xms参数的位置,添加 NewRatio 的值即可,本节展示 Tomcat 环境下设置 NewRatio 的步骤。

Windows:%Tomcat%/bin目录下的catalina.bat文件中新增配置,配置完成后重启工程。

set JAVA_OPTS= -Xms512M -Xmx1024M -XX:NewRatio=2

Linux:%Tomcat%/bin目录下的catalina.sh文件中新增配置,配置完成后重启工程。

JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -XX:NewRatio=2"

3.2 设置单线程使用栈空间

建议单线程使用栈空间不超过1024KB,即 -Xss 的值不超过 1024 。

在设置-Xmx、-Xms参数的位置,添加 -Xss 的值即可,本节展示 Tomcat 环境下设置 -Xss 的步骤。

Windows:%Tomcat%/bin目录下的catalina.bat文件中新增配置,配置完成后重启工程。

set JAVA_OPTS= -Xms512M -Xmx1024M -Xss1024K

Linux 系统:%Tomcat%/bin目录下的catalina.sh文件中新增配置,配置完成后重启工程。

JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -Xss1024K"

3.3 设置 DisableExplicitGC 参数

-XX:+DisableExplicitGC参数的作用是禁用 System.gc()
System.gc() 是一种保护机制,例如堆外内存满时清理它的堆内引用对象,用户需要根据实际情况选择是否使用该参数。

本节展示 Tomcat 环境下设置 DisableExplicitGC 参数的步骤。

Windows:%Tomcat%/bin目录下的catalina.bat文件中新增配置,配置完成后重启工程。

set JAVA_OPTS=%JAVA_OPTS% -XX:+DisableExplicitGC

Linux:%Tomcat%/bin目录下的catalina.sh文件中新增配置,配置完成后重启工程。

JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"

3.4 修改 headless 模式参数

headless 模式是系统的一种工作模式,如果系统属性 java.awt.headless被设置true,那么headless工具包就会被使用。

本节展示 Tomcat 环境下启用 headless 模式的步骤。

Windows:%Tomcat%/bin目录下的catalina.bat文件中新增配置,配置完成后重启工程。

set JAVA_OPTS=%JAVA_OPTS% -Djava.awt.headless=true

Linux:%Tomcat%/bin目录下的catalina.sh文件中新增配置,配置完成后重启工程。

JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"