本文将简单介绍 系统检查 功能的检查逻辑和检查项。
注1:若无法检测出当前配置,当前配置为空,修改意见为「暂不支持此项」,点击状态后面的「详情」,即可查看具体原因。
注2:若所有检查项均没有问题时,会提示:当前系统运行良好,无需调整。
注3:若系统为集群环境,在「系统检查」页面左上角可选择具体的集群节点进行检测。
内存检测项的检测逻辑如下表所示:
若当前物理内存小于16G,则提示修改,并结束检测进程。
检测工程所在的系统中,除 BI 进程之外的其他进程占用的内存是否过大
当前系统疑似为多进程,存在宕机隐患,建议仅保留BI工程
建议关闭系统中其他无用进程,仅保留 BI 工程相关的进程
建议JVM NIO使用堆外内存设置为2GB
请参考 2.2 节修改堆外内存
建议JVM fineIO读内存使用堆外内存设置为2G
请参考 2.3 节修改 fineIO读内存
建议JVM fineIO写内存使用堆外内存设置为1G
请参考 2.4 节修改 fineIO写内存
检测 BI 工程所所有参数所用内存是否已经超过了最大值(BImax)
BImax=max(2,NIO)+max(3g,FIO)+max(8,V)+other
NIO:堆外内存当前值
FIO:fineIO读内存+fineIO写内存
V:堆内内存当前值
other:min(min(物理内存-15,物理内存/8), 6GB)
若 BImax≤7/8物理内存,则跳转至第 13 项检查
设置堆内内存为30G
请参考 2.1 节配置堆内内存
设置堆内内存为一个系统计算后的值
堆内内存的修改方法,请参见下方表格文档:
-Xmx 参数:最大堆内内存
-Xms 参数:初始化内存大小
注1:Xmx/Xms 与数字之间不要有空格
注2:建议配置Xms=Xmx,以防止内存扩容失败情况
堆外内存由-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"
如下图所示:
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"
fineIO 写内存由-Dfineio.write_mem_limit这个参数来设置。请根据自身工程部署情况选择修改方法。本节展示 Tomcat 环境下设置 fineIO写内存 的步骤。
写内存的默认单位为 GB,支持小数,但不支持使用 g、m 等。建议读内存为写内存的2-3倍,缓存大小建议与写内存大小一致。
set JAVA_OPTS=%JAVA_OPTS% -Dfineio.write_mem_limit=1
JAVA_OPTS="$JAVA_OPTS -Dfineio.write_mem_limit=1"
检查结果和改进建议具体如下表所示:
与其他工程共用 finedb ,如:
1)两个及以上报表工程共用
2)两个及以上 BI 工程共用
3)报表 BI 集成工程与报表单独工程共用
4)报表 BI 集成工程与 BI 单独工程共用
5)报表工程与 BI 工程共用
建议堆内存不超过64G
建议open_files参数配置不低于65536
请参考 3.6 节修改最大文件打开数
建议resultSetRowLimit配置不超过${阈值}
请修改 BI/Spider参数 中的「数据访问量」参数
建议recompilationCutoff相关参数配置值为-1
请参考 3.7 节设置参数值
spider_update_fast_compute_limit_cell
建议 spider_update_fast_compute_limit_cell 配置不超过${阈值}
修改方法请参考:FINE_CONF_ENTITY可视化配置
建议spark_driver_maxResultSize配置不超过${阈值}
spider_fast_compute_limit_row
建议spider_fast_compute_limit_row配置不超过${阈值}
spider_fast_compute_limit_unit
建议spider_fast_compute_limit_unit配置不超过${阈值}
spider_fast_compute_limit_memory
建议spider_fast_compute_limit_memory配置不超过${阈值}
本节以工程部署在 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(-XX:NewRatio=2,JVM的默认值);NewRatio 大小正常生效需要用户不限制新生代大小。
在设置-Xmx、-Xms参数的位置,添加 NewRatio 的值即可,本节展示 Tomcat 环境下设置 NewRatio 的步骤。
set JAVA_OPTS= -Xms512M -Xmx1024M -XX:NewRatio=2
JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -XX:NewRatio=2"
建议单线程使用栈空间不超过1024KB,即 -Xss 的值不超过 1024 。
在设置-Xmx、-Xms参数的位置,添加 -Xss 的值即可,本节展示 Tomcat 环境下设置 -Xss 的步骤。
set JAVA_OPTS= -Xms512M -Xmx1024M -Xss1024K
Linux 系统:在%Tomcat%/bin目录下的catalina.sh文件中新增配置,配置完成后重启工程。
JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -Xss1024K"
-XX:+DisableExplicitGC参数的作用是禁用 System.gc()System.gc() 是一种保护机制,例如堆外内存满时清理它的堆内引用对象,用户需要根据实际情况选择是否使用该参数。
本节展示 Tomcat 环境下设置 DisableExplicitGC 参数的步骤。
set JAVA_OPTS=%JAVA_OPTS% -XX:+DisableExplicitGC
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"
headless 模式是系统的一种工作模式,如果系统属性 java.awt.headless被设置true,那么headless工具包就会被使用。
本节展示 Tomcat 环境下启用 headless 模式的步骤。
set JAVA_OPTS=%JAVA_OPTS% -Djava.awt.headless=true
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
修改linux的软硬件限制文件/etc/security/limits.conf,在文件尾部添加如下代码, 配置完成后重启工程即可生效。
* soft nofile 65536* hard nofile 65536
没有配置 RecompilationCutoff 参数/配置的 RecompilationCutoff 参数太小,可能会导致 spider 引擎数据更新缓慢。
本节展示 Tomcat 环境下设置 recompilationCutoff 参数的步骤。
set JAVA_OPTS=%JAVA_OPTS% -XX:PerMethodRecompilationCutoff=-1 -XX:PerBytecodeRecompilationCutoff=-1
JAVA_OPTS="$JAVA_OPTS -XX:PerMethodRecompilationCutoff=-1 -XX:PerBytecodeRecompilationCutoff=-1"