针对常见的运维监控诉求场景,给出现有的运维监控功能方案介绍,帮助客户快速实现对于 FineDataLink 应用的运维监控。
方案适用于已经完成部署的帆软系统,将会展开介绍帆软应用的日常维护、管理和监控方式。
帆软应用对系统有一定的配置要求,如果配置不符合要求可能出现使用异常、宕机等风险,因此需要定期对环境及应用的配置情况进行检测,以确保应用的健康运行。
同时管理员需要关注应用的运行状况,及时通过运维手段规避风险或在问题发生后定位并进行排除,实现应用的持续高可用。
本文方案将从以下几个方面展开介绍帆软应用的具体运维方式:
注:鉴于服务器情况不同,没有完全通用的解决方案。部分检查项仅提供推荐配置值,请自行百度修改方案。
1)关注磁盘的性能和使用情况,防止影响业务的正常运行
2)关注磁盘剩余空间,防止出现磁盘空间不足导致系统运行受影响
当应用出现异常时,宕机可能会随之发生
1)快速恢复应用
2)记录宕机日志,进行问题定位和排查
本章主要介绍帆软应用内的主要配置文件信息及其详细说明。
1)文件位置
%FineDataLink_HOME%\webapps\webroot\WEB-INF\config\db.properties
2)文件内容
FineDataLink 中除平台属性配置以外的所有信息,包括管道任务、定时任务信息等,均存储于 FineDB 数据库。
FineDataLink 支持使用内置 FineDB 数据库或启用外接 FineDB 数据库。
工程配置了外接数据库后,会在 WEB-INF/config 中生成一个 db.properties 文件。FineDB 数据库是否外接由 db.properties 文件控制。
3)文件关键信息
db.properties 文件中,常见配置关键字与其内容对应关系如下。
注:为了防止修改错误导致系统出错,不建议手动修改db.properties文件。
2:Read Commited 可读已提交
1:Read Uncommited 可读未提交
FineDataLink 中有些配置信息记录在 FineDB 的 fine_conf_entity 表中,只能通过修改表字段来进行更改。
用户可通过「fine_conf_entity可视化配置插件」安全地修改相关配置。
注:请勿使用该插件以外的方法修改 FineDB 文件,有可能造成不可修复的 BUG,需自行承担后果。
可修改的配置内容及修改方式请参见:fine_conf_entity可视化配置
建议管理员使用「健康巡检」功能,对系统进行定期巡检,确保应用所在的环境及应用内配置合理,以保证应用的正常运行。
巡检内容包括系统检查、系统运行状态、端口检查、网络检查、服务联通性检查、业务检查、环境检查、磁盘检查、非容器化部署检查、虚拟机检查。
系统检查的检测项包括:
巡检项
编号
集群节点是
否分别检查
是否支持
快速修复
仅输出信息
检查主频大于等于 2.4 gh
建议主频大于等于 2.4 gh
检查核心数大于 4 核
cpu 核心数推荐大于 4
检查内存是否大于等于15.5GB
建议物理内存大于等于16G
检查是否关闭SWAP配置
输出交换分区大小
建议关闭SWAP配置
1)查看当前系统中是否启用了swap分区
使用以下命令查看系统中已经启动的swap分区信息:
sudo swapon -s
如果输出结果为空,则表示当前没有启动swap分区。2)关闭swap分区
使用以下命令关闭swap分区:
sudo swapoff -a
该命令将关闭所有已经启动的swap分区。
3)永久禁用swap分区
为了避免系统在下一次启动时自动启动swap分区,需要在系统配置文件中进行相应的修改。
以Ubuntu为例,可以按照以下步骤操作:
修改/etc/fstab文件,找到含有swap的行并注释掉或删除该行。
执行以下命令更新grub引导程序:
sudo update-grub
4)验证swap分区是否已经关闭
重启系统后,可以再次执行sudo swapon -s命令查看系统中是否存在已经启动的swap分区。
如果输出结果为空,则表示swap分区已经成功关闭。
系统运行状态的检测项包括:
包括:本次启动的耗时
包括:目录路径
注:仅检测本地,不检测文件服务器。
检查工程WEB-INF下一层的每个文件夹大小
健康:不存在大于5G的文件夹
不健康:存在大于5G的文件夹
修改建议:
建议检查确认对应文件夹的内容并进行清理
提示出超过5G大小的文件夹路径
包括:插件名、插件版本、插件是否启用
包括:工程是否注册
包括:是/否
包括:工程各个模块的版本和JAR包日期
包括:目录路径、目录剩余可用空间
对于Windows系统、Tomcat容器下的工程,
检测是否使用javaw后台运行tomcat
健康:使用javaw后台运行tomcat
不健康:未使用javaw后台运行tomcat
修改建议:建议使用javaw后台运行tomcat
1)WEB-INF文件夹存放着什么
FineDataLink:FineDataLink安装目录结构
2)哪些文件可清理
%FineDataLink_HOME%\webapps\webroot\WEB-INF\treasures2)文件用途:云端运维日志打包文件3)清理级别:
建议清理
文件层级直接展示到具体的日期(日级别),用户手动选择需要清理的范围即可
推荐清理12个月之外的文件
12个月之内的文件不显示
3)清理方式
管理员登录 FineDataLink ,点击「管理系统>智能运维>磁盘运维>磁盘清理」。
选择需要扫描的文件类型,点击「开始扫描」,立即开始扫描可以手动清理的冗余文件。
原因分析:
Windows系统中,tomcat容器下部署的工程,如果不使用后台模式启动,而是使用窗口模式启动,可能会因为误点窗口,导致窗口进入编辑插入状态,阻塞日志输出,从而导致工程卡死。
因此建议Windows系统中,tomcat容器下部署的工程,tomcat使用后台模式启动。
操作步骤:
先修改默认启动模式为javaw。为了防止重复启动,再添加脚本检测启动命令,按任意键即可结束脚本。
1)修改setclasspath.bat
打开%Tomcat_HOME%\bin\setclasspath.bat,找到并修改set _RUNJAVA的值:
set _RUNJAVA="%JRE_HOME%\bin\javaw.exe"
2)修改catalina.bat
打开%Tomcat_HOME%\bin\catalina.bat,在最后加上判断提示:
set ENV_VAR_VALUE=%_EXECJAVA%echo %ENV_VAR_VALUE% | findstr /C:"javaw" >nulif %errorlevel% equ 0 ( echo tomcat is running in the background pause)
端口检查的检测项包括:
包括:端口号
1)宕机自动检测是否开启
2)宕机端口是否畅通
优化建议:建议开启宕机检测并保证端口可用
WebSocket 主要用于刷新 token、用户被踢出、平台消息、内存和 CPU 显示、平台日志处当前系统在线人数、数据连接编辑状态的确定。
WebSocket 不开放影响 socket 通信,访问可能异常断开。
用户可根据自己的工程情况选择合适的 WebSocket 端口配置方法,详情请参见下表:
只需用户环境满足生效条件,则自动使用该方案
若用户环境不满足生效条件,则可考虑自行配置socket.io方案
管理员 FineDataLink ,点击「管理系统>智能运维>宕机处理」。
可查看宕机自动处理工具使用的端口。默认端口为12100。
可修改端口,点击「保存」即可。
可点击「测试」,测试端口可用性。
检查文件服务器、外接数据库、状态服务器和应用之间通信是否正常,是否能够ping通,是否存在丢包情况。
服务联通性检查的检测项包括:
是否为宕
机检查项
业务检查的检测项包括:
检测finedb数据库的类型
健康:finedb迁移到了外接数据库
不健康:finedb使用内置HSQL数据库
修改建议:建议将finedb迁移至更稳定的外接数据库中。
检测「管理系统>智能运维>平台日志>全局设置」中的「系统日志级别」
健康:日志级别高于debug级别
不健康:日志级别为debug级别
修改建议:建议设置日志级别为 info。
检测「管理系统>智能运维>平台日志>全局设置」中「自动清理」周期
健康:配置了自动清理,自动清理超过三个月的日志
不健康:未配置自动清理
修改建议:建议开启平台日志自动清理并配置清理周期小于六个月。
检测「管理系统>智能运维>备份还原>全局设置」中设置的自动备份可占用磁盘大小
健康:各模块自动备份可占磁盘不超过1024M
不健康:各模块自动备份可占磁盘超过1024M
修改建议:建议各模块自动备份可占磁盘不超过1024M。
检测「管理系统>智能运维>备份还原>全局设置」中设置的自动备份保留数量
健康:各模块成功/失败自动备份可分别保留不超过5份
不健康:各模块成功/失败自动备份可分别保留超过5份
修改建议:建议自动备份默认保存不超过5份。
检测定时调度任务>调度对象中,文件处理方式的设置
健康:仅保留最近一次或任务结束即清理
不健康:其他文件处理方式
修改建议:建议定时调度调度对象文件处理设置为「仅保留最近一次」。
注:仅FineBI系统检测该项
检测「管理系统>系统管理>常规>BI参数」 中的「数据访问量」参数
健康:不超过100w
不健康:超过100w
修改建议:建议数据访问量不超过100w。
检测系统的spider_fast_compute_limit_unit参数值
健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_unit参数值不超过10000000
不健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_unit参数值超过10000000
检测系统的spider_fast_compute_limit_memory参数值
健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_memory参数值不超过500000000
不健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_memory参数值超过500000000
检测系统的spider_update_fast_compute_limit_cell参数值
健康:DistributedOptimizationConfig.spiderConfig.spider_update_fast_compute_limit_cell参数值不超过100000000
不健康:DistributedOptimizationConfig.spiderConfig.spider_update_fast_compute_limit_cell参数值超过100000000
检测系统的spider_fast_compute_limit_row参数值
健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_row参数值不超过10000000
不健康:DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_row参数值超过10000000
检测系统的spiderConfig.spark_driver_maxResultSize参数值
健康:DistributedOptimizationConfig.spiderConfig.spark_driver_maxResultSize参数值不超过10000000
不健康:DistributedOptimizationConfig.spiderConfig.spark_driver_maxResultSize参数值超过10000000
包括finedb外接数据库的数据库编码/字符集
外接数据库配置步骤请参见:配置外接数据库
检测「管理系统>智能运维>集群配置>参数配置」中的内部转发参数
集群参数配置请参见:集群参数配置
检测「管理系统>系统管理>常规>抽取参数」 中的「更新高性能时间区间」参数
BI参数配置请参见:BI/Spider参数
检测系统是否配置二级缓存
二级缓存开启及配置请参见:指定ehcache缓存路径
检测「管理系统>智能运维>负载管理>模板限制>通用限制」中的sql执行时长限制
健康:开启了sql执行时长限制
不健康:未开启sql执行时长限制
修改建议:建议开启内存管理-模板限制-通用限制-sql执行时长限制功能。
检测「管理系统>智能运维>负载管理>模板限制>通用限制」中的单模板单元格限制
健康:开启了单模板单元格限制
不健康:未开启单模板单元格限制
修改建议:建议开启系统管理-智能运维-内存管理-模板限制-通用限制-单模板单元格限制功能。
检测「管理系统>智能运维>负载管理>模板限制>通用限制」中的导入Excel单元格限制
健康:开启了导入Excel单元格限制
不健康:未开启导入Excel单元格限制
修改建议:建议开启系统管理-智能运维-内存管理-模板限制-通用限制-导入excel单元格限制功能。
检测「管理系统>智能运维>负载管理>模板限制>通用限制」中的单数据集行数限制
健康:开启了单数据集行数限制
不健康:未开启单数据集行数限制
修改建议:建议开启系统管理-智能运维-内存管理-模板限制-通用限制- 单数据集行数限制功能。
检测「管理系统>智能运维>负载管理>负载监控」中是否开启「智能预警」
详情请参见:负载管理
检测是否存在脏数据
健康:0条脏数据
不健康:x条脏数据
修改方法:有X条脏数据,建议在「BI工具」-「检测」-「脏数据」中进行排查清理
检测系统是否开启云端运维
云端运维功能请参见:云端运维
检测「管理系统>系统管理>登录」中是否开启「密码强度限制」
健康:开启了密码强度限制
不健康:未开启密码强度限制
修改建议:未开启密码强度限制,密码强度较低可能容易被攻击,导致安全问题,建议在[管理系统]-[系统管理]-[登录]中打开密码强度限制
管理员登录帆软应用,点击「管理系统>系统管理>常规>外接数据库」,将finedb迁移至更稳定的外接数据库中。
外接数据库迁移的具体操作步骤请参见:配置外接数据库
管理员登录帆软应用,点击「管理系统>智能运维>平台日志>全局设置」。
在「系统日志级别」中设置日志级别为 info,点击「保存」即可。
日志级别设置请参见:日志简介
在「操作日志清理」中开启「自动清理」并配置清理周期小于六个月。
操作日志自动清理设置请参见:日志简介
管理员登录帆软应用,点击「管理系统>智能运维>备份还原>全局设置」。
在「自动备份」中,建议各模块自动备份可占磁盘不超过1024M。备份还原设置请参见:备份还原
在「自动备份」中,建议自动备份默认保存不超过5份。备份还原设置请参见:备份还原
管理员登录帆软应用,在「定时调度」中,对「定时调度任务>调度对象」的文件处理方式设置为「仅保留最近一次」。
定时调度任务设置请参见:定时调度任务设置
管理员登录帆软应用,点击「管理系统>系统管理>常规>BI参数」 。
建议「数据访问量」参数值不超过100w。BI参数配置请参见:BI/Spider参数
「快速分析单元格数限制」的配置信息记录在 FineDB 的 fine_conf_entity 表中。
请通过「fine_conf_entity可视化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_unit参数值不超过10000000
点击「保存」,并重启FineBI工程,配置生效。
「快速分析内存大小限制」的配置信息记录在 FineDB 的 fine_conf_entity 表中。
请通过「fine_conf_entity可视化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_memory参数值不超过500000000
「快速分析更新单元格数限制」的配置信息记录在 FineDB 的 fine_conf_entity 表中。
请通过「fine_conf_entity可视化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spider_update_fast_compute_limit_cell参数值不超过100000000
请通过「fine_conf_entity可视化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spider_fast_compute_limit_row参数值不超过10000000
「spark计算结果内存大小限制」的配置信息记录在 FineDB 的 fine_conf_entity 表中。
请通过「fine_conf_entity可视化配置插件」,配置DistributedOptimizationConfig.spiderConfig.spark_driver_maxResultSize参数值不超过10000000
管理员登录帆软应用,点击「管理系统>智能运维>负载管理>模板限制>通用限制」。
建议开启sql执行时长限制功能。模板限制请参见:模板限制
建议开启单模板单元格限制功能。模板限制请参见:模板限制
建议开启导入excel单元格限制功能。模板限制请参见:模板限制
建议开启单数据集行数限制功能。模板限制请参见:模板限制
管理员登录帆软应用,点击「BI工具>检测>脏数据」。
检测系统中的脏数据,并进行排查清理。
管理员登录帆软应用,点击「管理系统>系统管理>登录」 。
在「密码策略设置」中,建议开启「密码强度限制」,并自定义设置密码强度。
详情请参见:密码策略设置
环境检查的检测项包括:
不健康:vm.max_map_count<262144
修改建议:建议配置 vm.max_map_count 参数为 262144
1)FineDataLink:
健康:open_files≥65536
不健康:open_files<65536
修改建议:建议open_files参数配置不低于65536
2)FineReport:
3)FineBI:
健康:open_files≥131070
不健康:open_files<131070
修改建议:建议open_files参数配置不低于131070
健康:overcommit_memory=0
不健康:overcommit_memory≠0
修改建议:建议vm.overcommit_memory参数配置为0
健康:overcommit_ratio=50
不健康:overcommit_ratio≠50
修改建议:建议vm.overcommit_ratio参数配置为50
健康:export MALLOC_ARENA_MAX=1
不健康:未配置/配置其他值
修改建议:建议配置export MALLOC_ARENA_MAX=1
1)参数简介:
vm.max_map_count是一个Linux系统内核参数,用于控制在一个进程中允许mmap映射内存区域的最大数量。
如果该参数的值太小,那么在使用一些应用程序时,可能会出现内存映射错误。
2)建议配置:
建议配置 vm.max_map_count 参数为 262144
3)修改方式:
在/etc/sysctl.conf文件中添加/修改参数值
vm.max_map_count=262144
运行以下命令使更改生效
sysctl -p
open_files是指一个进程可以同时打开的文件描述符的最大数量。
文件描述符是Unix系统中用于访问文件(包括管道、套接字和其他文件操作)的唯一标识符。
建议FineDataLink工程的open_files参数配置不低于65536
建议FineReport工程的open_files参数配置不低于65536
建议FineBI工程的open_files参数配置不低于131070
修改参数配置
打开Linux的软硬件限制文件/etc/security/limits.conf,在文件尾部添加如下代码:
* soft nofile 65536
* hard nofile 65536
上述命令中,hard表示系统的硬限制,soft表示用户的软限制。
重启工程并重新登录
配置完成后,终端用户重新登录,并重启Tomcat工程,配置方可生效。
可使用ulimit -n命令,根据返回值确认是否修改成功。
vm.overcommit_memory 是一个Linux内核参数,它控制了系统是否允许进程分配超过可用内存的内存量。
当参数值为0时,内核将检查是否有足够的可用内存来满足提交的内存需求。如果有足够的空闲内存,则允许进程继续分配内存;否则分配请求将失败并返回错误。
建议vm.overcommit_memory参数配置为0
vm.overcommit_memory=0
vm.overcommit_ratio 是一个 Linux 内核参数,它指定了系统 VMware 超大页管理器(Memory Ballooning)和 Swap 空间使用的比例。
当参数值为50时,内核使用适当的 Swap 两倍大小作为另一个备用空间,用于模拟物理内存。
建议vm.overcommit_ratio参数配置为50
vm.overcommit_ratio=50
为了防止glibc中的内存泄漏,可以通过在环境变量中设置MALLOC_ARENA_MAX来限制glibc在分配和释放动态内存时使用的堆空间数量。
建议配置export MALLOC_ARENA_MAX=1
关闭Tomcat服务器。
进入%Tomcat_HOME%/bin目录,打开 startup.sh 文件。
添加/修改行:export MALLOC_ARENA_MAX=1
保存对 startup.sh 文件的修改并关闭。
在终端中运行 startup.sh 文件,重启Tomcat并应用新的环境变量设置。
磁盘检查的检测项包括:
包括:顺序读取的速度
包括:顺序写的速度
包括:随机读的速度
包括:每秒创建小文件个数
包括:每秒删除小文件个数
健康:磁盘总大小≥100GB
不健康:磁盘总大小<100GB
修改建议:建议磁盘总大小高于100GB
健康:磁盘总大小≥400GB
不健康:磁盘总大小<400GB
修改建议:建议磁盘总大小高于400GB
包括:已使用的磁盘空间大小
健康:磁盘余量高于50GB
不健康:磁盘余量不足50GB
修改建议:磁盘余量不足50GB,建议清理磁盘大文件避免影响使用
健康:磁盘余量高于10GB
不健康:磁盘余量不足10GB
修改建议:磁盘余量不足10GB,建议清理磁盘大文件避免影响使用
非容器化部署的检测项包括:
包括:用户名称
包括:缓存文件夹、resources、assets、assist、finedb的权限
注:文件服务器权限不输出。
健康:帆软应用所需最大内存+其他进程使用内存<总物理内存
不健康:帆软应用所需最大内存+其他进程使用内存≥总物理内存
修改建议:建议帆软工程不要与其他应用服务共用服务器,否则会有宕机风险
Java虚拟机的检测项包括:
健康:堆外NIO内存为2GB或未配置该参数
不健康:堆外NIO内存配置了且不是2GB
修改建议:建议配置JVM NIO占用堆外内存2GB
健康:堆外fineIO读内存为2GB或未配置该参数
不健康:堆外fineIO读内存配置了且不是2GB
修改建议:建议JVM fineIO读内存使用堆外内存设置为2G
健康:堆外fineIO写内存为1GB或未配置该参数
不健康:堆外fineIO写内存配置了且不是1GB
修改建议:建议JVM fineIO写内存使用堆外内存设置为1G
健康:垃圾回收器类型为 ParallelScavenge
不健康:垃圾回收器类型不是 ParallelScavenge
修改建议:建议JVM使用垃圾回收器类型为ParallelScavenge
健康:不配置DisableExplicitGC参数
不健康:配置了DisableExplicitGC参数
修改建议:建议取消DisableExplicitGC参数配置
健康:高于帆软内置的JAVA版本(一般在1.8.202及以上版本)不健康:低于帆软内置的JAVA版本
修改建议:建议使用1.8.202及以上版本JDK
健康:已配置-Djava.awt.headless=true
不健康:未配置-Djava.awt.headless=true
修改建议:建议配置 -Djava.awt.headless=true 以启用 headless 模式
健康:已配置HeapDumpOnOutOfMemoryError及HeapDumpPath
不健康:未配置HeapDumpOnOutOfMemoryError及HeapDumpPath
修改建议:建议配置HeapDumpOnOutOfMemoryError及HeapDumpPath以保证正常导出dump
健康:-XX:PerBytecodeRecompilationCutoff=-1
不健康:-XX:PerBytecodeRecompilationCutoff≠-1
修改建议:建议配置-XX:PerBytecodeRecompilationCutoff=-1
健康:-XX:PerMethodRecompilationCutoff=-1
不健康:-XX:PerMethodRecompilationCutoff≠-1
修改建议:建议配置-XX:PerMethodRecompilationCutoff=-1
注:FineBI特有检查项
健康:非exe方式部署不健康:exe方式部署修改建议:建议使用web容器方式部署。详情请参见:Tomcat 服务器部署
健康:-XX:ReservedCodeCacheSize≥250m
不健康:-XX:ReservedCodeCacheSize<250m
修改建议:建议配置-XX:ReservedCodeCacheSize=250m
健康:-Duser.country=CN
不健康:-Duser.country≠CN
修改建议:建议配置-Duser.country=CN
健康:-Duser.language=zh
不健康:-Duser.language≠zh
健康:-Dsun.zip.disableMemoryMapping=true
不健康:-Dsun.zip.disableMemoryMapping≠true
健康:-XX:NewRatio=2
不健康:-XX:NewRatio≠2
修改建议:建议堆内老年代与新生代大小比例为 2,即-XX:NewRatio=2
健康:-Xss≤1024
不健康:-Xss>1024
健康:未配置参数 -agentlib:jdwp 和 -Xrunjdwp
不健康:配置了参数 -agentlib:jdwp 和 -Xrunjdwp
健康:根据系统实际情况计算出一个符合健康标准的堆内内存要求范围,当前堆内内存在计算出的符合要求的堆内内存范围内
不健康:当前堆内内存不在计算出的符合要求的堆内内存范围内
修改建议:为保证应用响应性能,建议配置为XGB
FineBI额外提醒:如果需要使用更大内存,在保证物理机内存充足的情况下,可以配置为48G~64G,但可能带来一定的响应性能下降
健康:Xms=Xmx
不健康:Xms≠Xmx
修改建议:建议配置Xms=Xmx
1)建议值
建议配置JVM NIO占用堆外内存2GB
2)修改方式
NIO由-XX:MaxDirectMemorySize这个参数控制。请根据自身工程部署情况选择修改方法。本节展示 Tomcat 环境下设置 NIO内存 的步骤。
注:若有setenv.sh/setenv.bat文件,优先将启动参数加在该文件中,若无setenv文件,则加在catalina.sh/catalina.bat文件中。
Windows:在%Tomcat%/bin目录下的catalina.bat/setenv.bat文件中新增配置,配置完成后重启工程。
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxDirectMemorySize=2g
Linux:在%Tomcat%/bin目录下的catalina.sh/setenv.sh文件中新增配置,配置完成后重启工程。
JAVA_OPTS="$JAVA_OPTS -XX:MaxDirectMemorySize=2g"
建议JVM fineIO读内存使用堆外内存设置为2G。
fineIO 读内存由-Dfineio.read_mem_limit这个参数来设置。请根据自身工程部署情况选择修改方法。本节展示 Tomcat 环境下设置 fineIO读内存 的步骤。
读内存的默认单位为 GB,支持小数,但不支持使用 g、m 等。建议读内存为写内存的2-3倍,缓存大小建议与写内存大小一致。
set JAVA_OPTS=%JAVA_OPTS% -Dfineio.read_mem_limit=2
JAVA_OPTS="$JAVA_OPTS -Dfineio.read_mem_limit=2"
建议JVM fineIO写内存使用堆外内存设置为1G。
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"
建议 JVM 使用垃圾回收器类型为 ParallelScavenge
本节以工程部署在 Tomcat 上为例, 介绍设置垃圾收集器为Parallel Scavenge(并行收集器)的方法。
set JAVA_OPTS= -XX:+UseParallelGC
JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelGC"
建议不对 DisableExplicitGC 参数进行配置,此项配置会导致 System.gc()被禁用,影响系统稳定性。
-XX:+DisableExplicitGC参数的作用是禁用 System.gc()。System.gc() 是一种保护机制,例如堆外内存满时清理它的堆内引用对象.
用户需要根据实际情况选择是否使用该参数,建议删除该参数(删除下文设置的配置即可)。
本节展示 Tomcat 环境下设置 DisableExplicitGC 参数的步骤。
set JAVA_OPTS=%JAVA_OPTS% -XX:+DisableExplicitGC
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"
建议使用「JDK8」中 1.8.0_181 及以上版本
2)检查方式
cmd 命令行进入%Tomcat_home%\bin路径下,输入version,即可查看 JDK 版本。如下图所示:
建议配置 -Djava.awt.headless=true 以启用 headless 模式
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"
建议配置HeapDumpOnOutOfMemoryError 及 HeapDumpPath以保证正常导出dump
1)-XX:+HeapDumpOnOutOfMemoryError参数表示当JVM发生OOM时,自动生成DUMP文件。
2)-XX:HeapDumpPath=${目录}参数表示生成dump文件的路径,也可以指定文件名称,例如:-XX:HeapDumpPath=${目录}/java_heapdump.hprof。
如果不指定文件名,默认为:java_<pid>_<date>_<time>_heapDump.hprof。
本节展示 Tomcat 环境下设置dump导出的步骤。
set JAVA_OPTS=%JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目录}
JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目录}"
建议recompilationCutoff相关参数配置值为-1
没有配置 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"
建议使用web容器方式部署。详情请参见:Tomcat 服务器部署
建议配置-XX:ReservedCodeCacheSize=250m
ReservedCodeCacheSize参数是调整内存大小的一个设置参数,值的大小设置直接影响到Code Cache的大小。
如果Code Cache的空间不足,可能会导致JVM无法正常运行,导致性能持续降低。
set JAVA_OPTS=%JAVA_OPTS% -XX:ReservedCodeCacheSize=250m
JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=250m"
建议配置-Duser.country=CN、-Duser.language=zh
为了防止中文出现乱码现象,要配置好Tomcat 的语言编码
set JAVA_OPTS=%JAVA_OPTS% -Duser.country=CN -Duser.language=zh
JAVA_OPTS="$JAVA_OPTS -Duser.country=CN -Duser.language=zh"
建议配置-Dsun.zip.disableMemoryMapping=true
配置该参数,可预防 jvm crash
set JAVA_OPTS=%JAVA_OPTS% -Dsun.zip.disableMemoryMapping=true
JAVA_OPTS="$JAVA_OPTS -Dsun.zip.disableMemoryMapping=true"
建议 JVM 老年代与新生代大小比例设置为 2
堆内老年代与新生代大小比例建议为 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
建议单线程使用栈空间不超过1024KB,即 -Xss 的值不超过 1024 。
在设置-Xmx、-Xms参数的位置,添加 -Xss 的值即可,本节展示 Tomcat 环境下设置 -Xss 的步骤。
set JAVA_OPTS= -Xms512M -Xmx1024M -Xss1024K
JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -Xss1024K"
建议取消debug模式
debug模式由两个参数控制:-agentlib:jdwp 和 -Xrunjdwp,删除这两个参数即可取消debug模式
Windows:在%Tomcat%/bin目录下的catalina.bat和setenv.bat文件中删除-agentlib:jdwp 和 -Xrunjdwp参数,配置完成后重启工程。
Linux:在%Tomcat%/bin目录下的catalina.sh和setenv.sh文件中删除-agentlib:jdwp 和 -Xrunjdwp参数,配置完成后重启工程。
-Xmx 参数:最大堆内内存
-Xms 参数:初始化内存大小
注1:Xmx/Xms 与数字之间不要有空格
注2:建议配置Xms=Xmx,以防止内存扩容失败情况
在应用日常的正常运行过程中,维护事务相对简单,在有需要的时候能够查看应用的运行日志,或查看应用的各项监控指标是否存在异常即可
1)内容说明
帆软应用通常涉及以下几类日志:
默认存储在%FDL_HOME%\logs\fanruan.log
服务器端不允许修改日志存储位置
存储在%FDL_HOME%\webapps\webroot\logs\cubes
允许修改日志存储位置
FineDataLink 支持实时备份
Tomcat部署情况下存在
默认存储在%FDL_HOME%/logs
2)如何通过帆软功能快捷运维
帆软提供下载日志功能,管理员登录 FineDataLink ,点击「管理系统>智能运维>平台日志」,其中「下载日志」Tab 提供相应功能。
通过此功能可实现下载指定时间的指定日志,并支持查看日志存储位置。
1)指标说明
日常运行中,运维人员主要需要关注以下各指标是否存在异常:
帆软提供内存管理页面,点击「管理系统>智能运维>负载管理」,其中「负载管理」Tab提供相应功能。
通过此功能可实现可视化查看帆软应用而非整个服务器的近期「负载曲线」、「内存曲线」和「CPU曲线」,快速了解帆软应用运行及压力状况。
帆软提供磁盘运维功能,点击「管理系统>智能运维>磁盘运维」,其中「磁盘使用情况分析」Tab提供相应功能。
通过此功能可实现可视化查看帆软应用重点相关磁盘目录的使用情况,及时避免出现磁盘不足。
如需对帆软应用的异常及时感知,需实现对帆软应用各项指标的监控告警,实现的方案有以下几点建议:
1)如使用的是云服务器(如阿里云、华为云等),可使用云服务厂商提供的监控类云服务,对服务器的资源异常进行监控
2)自行开发实现对于帆软应用的监控,如基于 promthues 组件等
3)针对系统负载过高的场景,帆软提供智能预警功能,检测到负载状态过高时将提醒运维人员。
管理员登录 FineDataLink ,点击「管理系统>智能运维>负载管理」,其中「负载监控」内可进行智能预警配置。
4)针对系统出现宕机的场景,帆软提供宕机通知功能,检测到系统宕机时将提醒运维人员。
管理员登录 FineDataLink ,点击「管理系统>智能运维>宕机处理」,其中「宕机处理」内可进行宕机通知配置。
5)针对系统磁盘空间不足的场景,帆软提供磁盘预警功能,检测到应用相关磁盘空间不足时,将提醒运维人员。
管理员登录 FineDataLink ,点击「管理系统>智能运维>磁盘运维」,其中「磁盘预警设置」tab页内可进行磁盘预警配置。
当应用出现异常时,宕机可能会随之发生,此时为了业务的可用,需要快速恢复应用,同时应尽量保存宕机时刻的日志信息,方便进行宕机原因定位及风险排除,避免再次出现类似异常。对于宕机,应进行以下运维动作:
1)保证系统环境有 jdk 工具,当应用发生宕机时,及时导出 dump 文件
进入到对应的 jdk 的 bin 目录
以 linux+tomcat 为例,查看pid的方式为使用 ps -ef|grep tomcat 管道过滤命令,查看对应的服务器进行 pid 。
使用命令 jmap -dump:format=b,file=文件名 [pid] 来生成 dump。
2)自行开发对帆软应用是否存活的监控,并在发现其不可用时告知到运维人员,并通过自动化脚本重启应用,或人工进行监控及应用重启
重启或停止应用时需确保完全关闭 FineDataLink工程相关进程,详情请参见:关闭或重启工程
3)在宕机发生后自行通过 dump 分析宕机原因或联系技术支持协助定位,并尽快排除宕机风险。
4)针对宕机场景,帆软提供应用存活监控功能,管理员登录 FineDataLink ,点击「管理系统>智能运维>宕机处理」。
通过「宕机处理」可以实现宕机消息通知,宕机日志自动导出,及宕机后自动重启恢复。
5)针对宕机定位,帆软提供宕机自助处理功能,管理员登录 FineDataLink ,点击「管理系统>智能运维>宕机处理」。
通过「宕机自助向导」可以对大多数的宕机原因给出分析结果并提供改进建议。
帆软系统需要定期进行备份,以确保在用户误操作、版本回退等场景下能够及时恢复。
FineDataLink 提供备份还原功能,支持对平台配置信息、FDL 任务、JAR 包、插件进行备份还原,详情请参见:备份还原
注:本节仅介绍小版本升级方式,大版本升级请联系帆软技术人员进行协助。
为满足客户的新需求以及对历史版本存在的问题进行修复,FineDataLink 在不断地更新迭代。为了能获得更好的功能体验,客户往往也要跟随更新版本。
FineDataLink 独立部署工程支持在线一键升级,具体操作请参考:FineDataLink一键升级
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
Submitted successfully
Network busy