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

目录:

1. 概述编辑

1.1 版本

运维平台版本
功能变更
V1.5-

1.2 功能简介

针对常见的运维监控诉求场景,给出现有的健康诊断修复方式,帮助客户快速实现对于 FineReport 和 FineBI 应用的运维监控。

1.3 功能简介

帆软应用对系统有一定的配置要求,如果配置不符合要求可能出现使用异常、宕机等风险,因此需要定期对环境及应用的配置情况进行检测,以确保应用的健康运行。

同时管理员需要关注应用的运行状况,及时通过运维手段规避风险或在问题发生后定位并进行排除,实现应用的持续高可用。

2. 系统检查编辑

系统检查的检测项包括:

巡检项

编号

检测项

集群节点是

否分别检查

是否为宕

机检查项

是否支持

快速修复

健康标准及修改建议
0101操作系统信息

仅输出信息

0102检测时间仅输出信息
0103时区信息仅输出信息
0104glibc/gcc版本
仅输出信息
0105hostname仅输出信息
0106host文件信息仅输出信息
0107CPU主频

检查主频大于等于2.4 gh

建议主频大于等于 2.4 gh

0108核心数

检查核心数大于4核

cpu 核心数推荐大于 4

0109内存大小

检查内存是否大于等于15.5GB

建议物理内存大于等于16G

0110交换分区

检查是否关闭SWAP配置

输出交换分区大小

建议关闭SWAP配置

0111已使用内存仅输出信息
0112空闲内存仅输出信息

3. 系统运行状态编辑

系统运行状态的检测项包括:

巡检项

编号

检测项

集群节点是

否分别检查

是否为宕

机检查项

是否支持

快速修复

健康标准
0201启动时长仅输出信息

包括:本次启动的耗时

0203工程启动路径仅输出信息

包括:目录路径

0204工程下文件夹大小异常情况

注:仅检测本地,不检测文件服务器。

检查工程WEB-INF下一层的每个文件夹大小

健康:不存在大于5G的文件夹

不健康:存在大于5G的文件夹

修改建议:

建议检查确认对应文件夹的内容并进行清理

提示出超过5G大小的文件夹路径

0205插件信息

仅输出信息

包括:插件名、插件版本、插件是否启用

0206注册授权信息

仅输出信息

包括:工程是否注册

0207WEB-INF下是否有web.xml

仅输出信息

包括:是/否

0208容器版本仅输出信息
0209工程jar包信息

仅输出信息

包括:工程各个模块的版本和JAR包日期

0211临时输出目录仅输出信息

包括:目录路径、目录剩余可用空间

4. 端口检查编辑

端口检查的检测项包括:

巡检项

编号

检测项

集群节点是

否分别检查

是否为宕

机检查项

是否支持

快速修复

健康标准及修改建议
0301websocket端口仅输出信息

包括:端口号

0302集群端口

检测集群端口是否畅通

健康:端口间畅通

不健康:端口存在不畅通

修改建议:集群端口连通性状态异常

0303宕机检测

检测:

1)宕机自动检测是否开启

2)宕机端口是否畅通

优化建议:建议开启宕机检测并保证端口可用

4.1 检查宕机检测端口

管理员登录工程,点击「管理系统>智能运维>宕机处理」。

  • 可查看宕机自动处理工具使用的端口。默认端口为12100。

  • 可修改端口,点击「保存」即可。

  • 可点击「测试」,测试端口可用性。

4.2 检查集群端口

管理员登录运维平台,点击「运维管理>集群节点管理」。

可查看集群各个节点的端口,无法使用的节点飘红。

可编辑节点端口,鼠标悬浮即可出现编辑按钮。

4.3 检查websocket端口

WebSocket 主要用于刷新 token、用户被踢出、平台消息、内存和 CPU 显示、平台日志处当前系统在线人数、数据连接编辑状态的确定。

WebSocket 不开放影响 socket 通信,访问可能异常断开。

用户可根据自己的工程情况选择合适的 WebSocket 端口配置方法,详情请参见下表:

方案场景配置方法
容器Websocket方案容器Websocket方案,无需任何用户操作,系统可自动使用Web容器自带的WebSocket进行连接,端口复用http端口
  • 只需用户环境满足生效条件,则自动使用该方案

  • 若用户环境不满足生效条件,则可考虑自行配置socket.io方案

容器Websocket方案
socket.io方案单机环境配置 WebSocket 端口单机配置WebSocket端口
集群环境配置 WebSocket 端口集群配置WebSocket端口
HTTPS 环境配置 Websocket 端口HTTPS环境配置WebSocket
仅对外开放一个端口不额外给WebSocket对外开放端口

5. 网络检查编辑

检查文件服务器、外接数据库、状态服务器和应用之间通信是否正常,是否能够ping通,是否存在丢包情况。

6. 服务联通性检查编辑

服务联通性检查的检测项包括:

巡检项

编号

检测项

集群节点是

否分别检查

是否为宕

机检查项

是否支持

快速修复

健康标准
0901Redis联通检测工程与Redis组件之间是否联通
0902Sftp联通检测工程与Sftp组件之间是否联通
0903FineDB联通检测工程与FineDB数据库之间是否联通

7. 业务检查编辑

业务检查的检测项包括:

巡检项

编号

检测项

集群节点是

否分别检查

是否为宕

机检查项

是否支持

快速修复

健康标准
1001finedb

检测finedb数据库的类型

健康:finedb迁移到了外接数据库

不健康:finedb使用内置HSQL数据库

修改建议:建议将finedb迁移至更稳定的外接数据库中。外接数据库迁移请参见:配置外接数据库

1002日志级别

检测「管理系统>智能运维>平台日志>全局设置」中的「系统日志级别

健康:日志级别高于debug级别

不健康:日志级别为debug级别

修改建议:建议设置日志级别为 info。日志级别设置请参见:日志简介

1003日志清理

检测「管理系统>智能运维>平台日志>全局设置」中「自动清理」周期

健康:配置了自动清理,自动清理超过三个月的日志

不健康:未配置自动清理

修改建议:建议开启平台日志自动清理并配置清理周期小于六个月。操作日志自动清理设置请参见:日志简介

1004自动备份磁盘占用限制

检测「管理系统>智能运维>备份还原>全局设置」中设置的自动备份可占用磁盘大小

健康:各模块自动备份可占磁盘不超过1024M

不健康:各模块自动备份可占磁盘超过1024M

修改建议:建议各模块自动备份可占磁盘不超过1024M。备份还原设置请参见:备份还原

1005自动备份保留数量限制

检测「管理系统>智能运维>备份还原>全局设置」中设置的自动备份保留数量

健康:各模块成功/失败自动备份可分别保留不超过5份

不健康:各模块成功/失败自动备份可分别保留超过5份

修改建议:建议自动备份默认保存不超过5份。备份还原设置请参见:备份还原

1006定时调度任务清理配置

检测定时调度任务>调度对象中,文件处理方式的设置

健康:仅保留最近一次或任务结束即清理

不健康:其他文件处理方式

修改建议:建议定时调度调度对象文件处理设置为「仅保留最近一次」。定时调度任务设置请参见:定时调度任务设置

1007内存数据行数限制

注:仅FineBI系统检测该项

检测「管理系统>系统管理>常规>BI参数」 中的「数据访问量」参数

健康:不超过100w

不健康:超过100w

修改建议:建议数据访问量不超过100w。BI参数配置请参见:BI/Spider参数

1008快速分析单元格数限制

注:仅FineBI系统检测该项

检测系统的spider_fast_compute_limit_unit参数值

健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_unit参数值不超过10000000

不健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_unit参数值超过10000000

参数值修改方法请参考:FINE_CONF_ENTITY可视化配置

1009快速分析内存大小限制

注:仅FineBI系统检测该项

检测系统的spider_fast_compute_limit_memory参数值

健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_memory参数值不超过500000000

不健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_memory参数值超过500000000

1010快速分析更新单元格数限制

注:仅FineBI系统检测该项

检测系统的spider_update_fast_compute_limit_cell参数值

健康:DistributedOptimizationConfig.spiderConfig.spider_update_fast_compute_limit_cell参数值不超过10000

不健康:DistributedOptimizationConfig.spiderConfig.spider_update_fast_compute_limit_cell参数值超过10000

1011快速分析行数限制

注:仅FineBI系统检测该项

检测系统的spider_fast_compute_limit_row参数值

健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_row参数值不超过10000000

不健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_row参数值超过10000000

参数值修改方法请参考:FINE_CONF_ENTITY可视化配置

1012spark计算结果内存大小限制

注:仅FineBI系统检测该项

检测系统的spiderConfig.spark_driver_maxResultSize参数值

健康:DistributedOptimizationConfig.spiderConfig.spark_driver_maxResultSize参数值不超过10000000

不健康:DistributedOptimizationConfig.spiderConfig.spark_driver_maxResultSize参数值超过10000000

参数值修改方法请参考:FINE_CONF_ENTITY可视化配置

1013spark内存大小限制-
1014外接库的数据库编码/字符集

仅输出信息

包括finedb外接数据库的数据库编码/字符集

外接数据库配置步骤请参见:配置外接数据库

1015集群参数配置

仅输出信息

检测「管理系统>智能运维>集群配置>参数配置」中的内部转发参数

集群参数配置请参见:集群参数配置

1016更新资源无限制时间段配置

注:仅FineBI系统检测该项

仅输出信息

检测「管理系统>系统管理>常规>抽取参数」 中的「更新高性能时间区间」参

BI参数配置请参见:BI/Spider参数

1017二级缓存开启情况

仅输出信息

检测系统是否配置二级缓存

二级缓存开启及配置请参见:指定ehcache缓存路径

1018sql执行时长限制

检测「管理系统>智能运维>负载管理>模板限制>通用限制」中的sql执行时长限制

健康:开启了sql执行时长限制

不健康:未开启sql执行时长限制

修改建议:建议开启内存管理-模板限制-通用限制-sql执行时长限制功能。模板限制请参见:模板限制

1019单模板单元格数限制

检测「管理系统>智能运维>负载管理>模板限制>通用限制」中的单模板单元格限制

健康:开启了单模板单元格限制

不健康:未开启单模板单元格限制

修改建议:建议开启系统管理-智能运维-内存管理-模板限制-通用限制-单模板单元格限制功能。模板限制请参见:模板限制

1020导入excel单元格数限制

检测「管理系统>智能运维>负载管理>模板限制>通用限制」中的导入Excel单元格限制

健康:开启了导入Excel单元格限制

不健康:未开启导入Excel单元格限制

修改建议:建议开启系统管理-智能运维-内存管理-模板限制-通用限制-导入excel单元格限制功能。模板限制请参见:模板限制

1021内存数据行数限制

注:仅FineBI系统检测该项

检测「管理系统>系统管理>常规>BI参数」 中的「数据访问量」参

健康:不超过100w

不健康:超过100w

修改建议:建议开启系统管理-常规-BI参数中的数据访问量限制。BI参数配置请参见:BI/Spider参数

1022单数据集行数限制

检测「管理系统>智能运维>负载管理>模板限制>通用限制」中的单数据集行数限制

健康:开启了单数据集行数限制

不健康:未开启单数据集行数限制

修改建议:建议开启系统管理-智能运维-内存管理-模板限制-通用限制- 单数据集行数限制功能。模板限制请参见:模板限制

1023负载预警开启

仅输出信息

检测「管理系统>智能运维>负载管理>负载监控」中是否开启「智能预警」

详情请参见:负载管理

1024脏数据检测

注:仅FineBI系统检测该项

检测是否存在脏数据

健康:0条脏数据

不健康:x条脏数据

修改方法:有X条脏数据,建议在「BI工具」-「检测」-「脏数据」中进行排查清理

8. 环境检查编辑

环境检查的检测项包括:

巡检项

编号

检测项

集群节点是

否分别检查

是否为宕

机检查项

是否支持

快速修复

健康标准
0701vm.max_map_count

健康:vm.max_map_count≥262144

不健康:vm.max_map_count<262144

修改建议:建议配置 vm.max_map_count 参数为 262144

修改方法:Linux 环境下设置 vm.max_map_count 参数的语句为:

vim /etc/sysctl.conf

vm.max_map_count=262144

sysctl -p

0702最大文件打开数

1)FineReport:

健康:open_files≥65536

不健康:open_files<65536

修改建议:建议open_files参数配置不低于65536

2)FineBI:

健康:open_files≥131070

不健康:open_files<131070

修改建议:建议open_files参数配置不低于131070

3)修改方法:

修改Linux的软硬件限制文件/etc/security/limits.conf,在文件尾部添加如下代码, 配置完成后重启工程即可生效

* soft nofile 65536
* hard nofile 65536

0703overcommit_memory

健康:overcommit_memory=0

不健康:overcommit_memory≠0

修改建议:建议vm.overcommit_memory参数配置为0

0704overcommit_ratio

健康:overcommit_ratio=50

不健康:overcommit_ratio≠50

修改建议:建议vm.overcommit_ratio参数配置为50

0705gblic内存泄露相关配置

检测/etc/profile 文件是否配置了export MALLOC_ARENA_MAX参数

健康:export MALLOC_ARENA_MAX=1

不健康:未配置/配置其他值

修改建议:建议/etc/profile 文件,配置export MALLOC_ARENA_MAX=1,防止gblic内存泄漏

9. 磁盘检查编辑

磁盘检查的检测项包括:

巡检项

编号

检测项

集群节点是

否分别检查

是否为宕

机检查项

是否支持

快速修复

健康标准及修改建议
0501顺序读取

仅输出信息

包括:顺序读取的速度

0502顺序写

仅输出信息

包括:顺序写的速度

0503随机读

仅输出信息

包括:随机读的速度

0504小文件创建

仅输出信息

包括:每秒创建小文件个数

0505小文件删除仅输出信息

包括:每秒删除小文件个数

0506磁盘空间

1)FineReport:

健康:磁盘总大小≥100GB

不健康:磁盘总大小<100GB

修改建议:建议磁盘总大小高于100GB

2)FineBI:

健康:磁盘总大小≥400GB

不健康:磁盘总大小<400GB

修改建议:建议磁盘总大小高于400GB

0507已使用磁盘空间

仅输出信息

包括:已使用的磁盘空间大小

0508空闲磁盘空间

1)FineReport:

健康:磁盘余量高于10GB

不健康:磁盘余量不足10GB

修改建议:磁盘余量不足10GB,建议清理磁盘大文件避免影响使用

2)FineBI:

健康:磁盘余量高于50GB

不健康:磁盘余量不足50GB

修改建议:磁盘余量不足50GB,建议清理磁盘大文件避免影响使用

10. 非容器化部署信息编辑

非容器化部署的检测项包括:

巡检项

编号

检测项

集群节点是

否分别检查

是否为宕

机检查项

是否支持

快速修复

健康标准
0601进程用户

仅输出信息

包括:用户名称

0602服务器主要文件夹权限

仅输出信息

包括:缓存文件夹、resources、assets、assist、finedb的权限

注:文件服务器权限不输出。

11. Java 虚拟机检查编辑

Java虚拟机的检测项包括:

巡检项

编号

检测项

集群节点是

否分别检查

是否为宕

机检查项

是否支持

快速修复

健康标准
0801堆外NIO内存

健康:堆外NIO内存为2GB或未配置该参数

不健康:堆外NIO内存配置了且不是2GB

修改建议:建议配置JVM NIO占用堆外内存2GB

0802
堆外fineIO读内存

健康:堆外fineIO读内存为2GB或未配置该参数

不健康:堆外fineIO读内存配置了且不是2GB

修改建议:建议JVM fineIO读内存使用堆外内存设置为2G

0803堆外fineIO写内存

健康:堆外fineIO写内存为1GB或未配置该参数

不健康:堆外fineIO写内存配置了且不是1GB

修改建议:建议JVM fineIO写内存使用堆外内存设置为1G

0804垃圾回收器类型

健康:垃圾回收器类型为 ParallelScavenge

不健康:垃圾回收器类型不是 ParallelScavenge

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

0805DisableExplicitGC参数

健康:不配置DisableExplicitGC参数

不健康:配置了DisableExplicitGC参数

修改建议:建议取消DisableExplicitGC参数配置

0806JDK版本

健康:高于帆软内置的JAVA版本(一般在1.8.202及以上版本)
不健康:低于帆软内置的JAVA版本

修改建议:建议使用1.8.202及以上版本JDK

0807headless模式

健康:已配置-Djava.awt.headless=true

不健康:未配置-Djava.awt.headless=true

修改建议:建议配置 -Djava.awt.headless=true 以启用 headless 模式

0808dump导出

健康:已配置HeapDumpOnOutOfMemoryError及HeapDumpPath

不健康:未配置HeapDumpOnOutOfMemoryError及HeapDumpPath

修改建议:建议配置HeapDumpOnOutOfMemoryError及HeapDumpPath以保证正常导出dump

0809BytecodeRecompilationCutoff配置

健康:-XX:PerBytecodeRecompilationCutoff=-1

不健康:-XX:PerBytecodeRecompilationCutoff≠-1

修改建议:建议配置-XX:PerBytecodeRecompilationCutoff=-1

0810PerMethodRecompilationCutoff配置

健康:-XX:PerMethodRecompilationCutoff=-1

不健康:-XX:PerMethodRecompilationCutoff≠-1

修改建议:建议配置-XX:PerMethodRecompilationCutoff=-1

0811安装包部署

注:FineBI特有检查项

健康:非exe方式部署
不健康:exe方式部署
修改建议:建议使用web容器方式部署。详情请参见:Tomcat 服务器部署

0813codecache配置

健康:-XX:ReservedCodeCacheSize≥250m

不健康:-XX:ReservedCodeCacheSize<250m

修改建议:建议配置-XX:ReservedCodeCacheSize=250m

0814语言配置-Duser.country

健康:-Duser.country=CN

不健康:-Duser.country≠CN

修改建议:建议配置-Duser.country=CN

0815语言配置-Duser.language

健康:-Duser.language=zh

不健康:-Duser.language≠zh

修改建议:建议配置-Duser.language=zh
0816zip相关配置-Dsun.zip.disableMemoryMapping

健康:-Dsun.zip.disableMemoryMapping=true

不健康:-Dsun.zip.disableMemoryMapping≠true

修改建议:建议配置-Dsun.zip.disableMemoryMapping=true
0817堆内老年代与新生代大小比例

健康:-XX:NewRatio=2

不健康:-XX:NewRatio≠2

修改建议:建议堆内老年代与新生代大小比例为 2,即-XX:NewRatio=2

0818栈空间

健康:-Xss≤1024

不健康:-Xss>1024

修改建议:建议单线程使用栈空间不超过1024KB,即 -Xss 的值不超过 1024
0819debug模式

健康:未配置参数 -agentlib:jdwp 和 -Xrunjdwp

不健康:配置了参数 -agentlib:jdwp 和 -Xrunjdwp

修改建议:建议取消debug模式,删除两个参数 -agentlib:jdwp 和 -Xrunjdwp
0820堆内内存

健康:根据系统实际情况计算出一个符合健康标准的堆内内存要求范围,当前堆内内存在计算出的符合要求的堆内内存范围内

不健康:当前堆内内存不在计算出的符合要求的堆内内存范围内

修改建议:为保证应用响应性能,建议配置为XGB

FineBI额外提醒:如果需要使用更大内存,在保证物理机内存充足的情况下,可以配置为48G~64G,但可能带来一定的响应性能下降

0821xms配置

健康:Xms=Xmx

不健康:Xms≠Xmx

修改建议:建议配置Xms=Xmx

11.1 物理内存、堆内内存、xms配置

1)建议值

注册用户数在线用户数并发用户数推荐配置最低配置
 2000-5000 400-1000  0-200

单机

CPU:8 核 16 线程 2GHZ

JVM 内存:16GB

物理内存:32G

单机

CPU:8 核 16 线程 2GHZ

JVM 内存:8GB

物理内存:16G

 4000-10000800-1500200-300

单机

CPU:8 核 16 线程 2GHZ

JVM 内存:16GB

物理内存:32G

单机

CPU:8 核 16 线程 2GHZ

JVM 内存:8GB

物理内存:16G

 6000-120001200-2500300-500单机

CPU:8 核 16 线程 2GHZ

JVM 内存:24GB

物理内存:48G

单机

CPU:8 核 16 线程 2GHZ

JVM 内存:16GB

物理内存:32G

8000-200001600-4000500-800

双节点

CPU:8 核 16 线程 2GHZ

JVM 内存:24GB

物理内存:48G

双节点

CPU:8 核 16 线程 2GHZ

JVM 内存:16GB

物理内存:32G

10000-250002000-5000800-1000

三节点

CPU:8 核 16 线程 2GHZ

JVM 内存:32GB

物理内存:64G

双节点

CPU:8 核 16 线程 2GHZ

JVM 内存:24GB

物理内存:48G

12000-300002400-60001000-1200

三节点

CPU:8 核 16 线程 2GHZ

JVM 内存:32GB

物理内存:64G

三节点

CPU:8 核 16 线程 2GHZ

JVM 内存:24GB

物理内存:48G

说明:

  • 注册用户数:系统注册了的用户。

  • 在线用户数:用户同时在一定时间段的在线数量(一般注册人数的 5% - 20% 之间)。

  • 并发用户数:同时向服务器发送请求的用户数(一般是在线人数的 10% - 25% 左右)。

  • 推荐配置时:70% 场景的平均响应时间低于 3s。

  • 最低配置时:70% 场景的平均响应时间低于 5s。

2)修改方式

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

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

-Xmx 参数:最大堆内内存

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

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

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

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

11.2 堆外fineIO读内存

1)建议值

建议JVM fineIO读内存使用堆外内存设置为2G。

2)修改方式

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"

11.3 堆外fineIO写内存

1)建议值

建议JVM fineIO写内存使用堆外内存设置为1G。

2)修改方式

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"

11.4 headless 模式

1)建议值

建议配置 -Djava.awt.headless=true 以启用 headless 模式

2)修改方式

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"

11.5 dump导出

1)建议值

建议配置HeapDumpOnOutOfMemoryError 及 HeapDumpPath以保证正常导出dump

2)修改方式

1)-XX:+HeapDumpOnOutOfMemoryError参数表示当JVM发生OOM时,自动生成DUMP文件。

2)-XX:HeapDumpPath=${目录}参数表示生成dump文件的路径,也可以指定文件名称,例如:-XX:HeapDumpPath=${目录}/java_heapdump.hprof。

如果不指定文件名,默认为:java_<pid>_<date>_<time>_heapDump.hprof。

本节展示 Tomcat 环境下设置dump导出的步骤。

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

set JAVA_OPTS=%JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError  -XX:HeapDumpPath=${目录}

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

JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError  -XX:HeapDumpPath=${目录}"

11.6 DisableExplicitGC 参数

1)建议值

建议不对 DisableExplicitGC 参数进行配置,此项配置会导致 System.gc()被禁用,影响系统稳定性。

2)修改方式

-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"

11.7 JDK版本

1)建议值

建议使用「JDK8」中 1.8.0_181 及以上版本

2)检查方式

cmd 命令行进入%Tomcat_home%\bin路径下,输入version,即可查看 JDK 版本。如下图所示:

11.8 栈空间

1)建议值

建议单线程使用栈空间不超过1024KB

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"

11.9 垃圾回收器

1)建议值

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

2)修改方式

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

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

set JAVA_OPTS= -XX:+UseParallelGC

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

JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelGC"

11.10 老年代与新生代大小比例

1)建议值

建议 JVM 老年代与新生代大小比例设置为 2

2)修改方式

堆内老年代与新生代大小比例建议为 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"

11.11 recompilationCutoff

1)建议值

建议recompilationCutoff相关参数配置值为-1

2)修改方式

没有配置 RecompilationCutoff 参数/配置的 RecompilationCutoff 参数太小,可能会导致 spider 引擎数据更新缓慢。

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

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

set JAVA_OPTS=%JAVA_OPTS% -XX:PerMethodRecompilationCutoff=-1 -XX:PerBytecodeRecompilationCutoff=-1

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

JAVA_OPTS="$JAVA_OPTS -XX:PerMethodRecompilationCutoff=-1 -XX:PerBytecodeRecompilationCutoff=-1"

11.12 debug模式

1)建议值

建议取消debug模式

2)修改方式

debug模式由两个参数控制:-agentlib:jdwp 和 -Xrunjdwp,删除这两个参数即可取消debug模式

  • Windows:%Tomcat%/bin目录下的catalina.bat文件中删除-agentlib:jdwp 和 -Xrunjdwp参数,配置完成后重启工程。

  • Linux:%Tomcat%/bin目录下的catalina.sh文件中删除-agentlib:jdwp 和 -Xrunjdwp参数,配置完成后重启工程。

11.13 zip相关配置-Dsun.zip.disableMemoryMapping

1)建议值

建议配置-Dsun.zip.disableMemoryMapping=true

2)修改方式

配置该参数,可预防 jvm crash

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

set JAVA_OPTS=%JAVA_OPTS% -Dsun.zip.disableMemoryMapping=true

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

JAVA_OPTS="$JAVA_OPTS -Dsun.zip.disableMemoryMapping=true"

11.14 语言配置

1)建议值

建议配置-Duser.country=CN、-Duser.language=zh

2)修改方式

为了防止中文出现乱码现象,要配置好Tomcat 的语言编码

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

set JAVA_OPTS=%JAVA_OPTS% -Duser.country=CN -Duser.language=zh

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

JAVA_OPTS="$JAVA_OPTS -Duser.country=CN -Duser.language=zh"

11.15 codecache配置

1)建议值

建议配置-XX:ReservedCodeCacheSize=250m

2)修改方式

ReservedCodeCacheSize参数是调整内存大小的一个设置参数,值的大小设置直接影响到Code Cache的大小。

如果Code Cache的空间不足,可能会导致JVM无法正常运行,导致性能持续降低。

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

set JAVA_OPTS=%JAVA_OPTS% -XX:ReservedCodeCacheSize=250m

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

JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=250m"