1. 概述
1.1 版本
报表服务器版本 | 系统运维插件版本 | 功能变更 |
---|---|---|
11.0 | - | - |
11.0.8 | V1.4.5 | 1)「自定导出内存堆栈」支持选择导出内容:堆栈、histo、dump 2)「自定导出内存堆栈」默认开启,默认选中全部 |
11.0.14 | V1.4.6 | 1)「宕机自助向导」中的宕机原因和解决方案优化 2)宕机自动处理适配FineBI 3)「进程自动恢复」功能从「宕机自动重启」功能中拆分独立出来,支持配置生效时间 4)「宕机自动重启」功能不再和配置dump自动导出强关联 5)「自动导出内存堆栈」功能默认开启 |
1.2 应用场景
报表工程部署在服务器上后,会因为各种原因导致宕机。
宕机后若直接重启没有抓取 DUMP 文件 ,很难定位到真实原因,从而无法快速解决问题和做一些防止再发生的预防措施,造成的时间和精力损失无法估计,对服务器运维非常不友好。
FineReport 内置「系统运维」插件,提供「宕机自动处理」功能。
发生宕机后,通过分析生成的 DUMP 文件,可以快速定位宕机原因,及时处理宕机问题和做一些有效的预防措施,为用户增加一道保险。
注1:「宕机处理」功能仅支持运维平台部署的工程,或Tomcat中间件下的工程。
对于非 Tomcat 中间件部署的工程,或设计器自带的工程,不支持「宕机处理」功能。
注2:FineReport与FineBI集成的工程,在使用此功能时,优先调用FineBI的「宕机处理」功能,禁用FineReport的「宕机处理」功能,以保证不影响FineBI工程的运行。
1.3 功能入口
超管登录数据决策系统,点击「管理系统>智能运维>宕机处理」,就可以看到平台端对应的功能模块。如下图所示:
模块下功能分为宕机自助向导、运行监测、宕机处理、内存堆栈导出记录、服务器重启记录 5 部分。
注:宕机处理页面在平台端打开时,加载时间较长,请耐心等待。
2. 宕机自助向导
记录工程的宕机时间和宕机原因,并提供对应的推荐处理方案。如下图所示:
常见的宕机原因和推荐处理方案如下表所示:
宕机原因 | 推荐处理方案 |
---|---|
内存溢出,可查看具体引发该问题的模板,包括: 被中止的模板 模板计算占用内存过高 模板计算时间过长 sql执行时间过长 模板数据集数据行数大于建议限制行数 模板单元格数大于建议限制单元格数 | 1)建议对详情中的模板进行性能排查,同时开启模板限制,配置合理的限制范围以避免模板性能导致宕机。 模板限制请参见:模板限制 2)如果当前系统堆内内存配置小于推荐配置时,额外建议使用系统检查功能对应用进行诊断,修改堆内内存至推荐值。 系统检查请参见:系统检查 |
所用JDK版本存在BUG | 建议更换为1.8.0_181及以上版本的JDK8 |
系统存在不合理的内存配置 | 使用系统检查功能对应用进行诊断,并参照推荐值修改内存配置 系统检查请参见:系统检查 |
磁盘空间不足 | 请检查磁盘空间并清理不必要文件 磁盘扩容请参见:磁盘扩容 |
内存映射文件数量设置过低 | 使用系统检查功能对应用进行诊断,并参照推荐值修改内存映射文件数量配置 系统检查请参见:系统检查 |
当前所用版本存在宕机BUG | 建议更新升级至最新的小版本 FR更新升级请参见:FineReport版本说明 BI更新升级请参见:FineBI 版本说明 |
未知原因导致应用崩溃 | 建议上传云端运维日志或联系技术支持进行反馈 |
SSH退出导致应用退出 | 通过SSH方式启动应用会导致SSH退出时应用也被退出 建议使用其他命令行远程工具如secureCRT或配置其他应用服务器自启动等方式 |
数据源取数耗时过长导致线程阻塞 | 建议使用抽数缓存、SQL优化、数据预处理等方式提升取数性能 性能优化请参见:性能优化指导手册 |
日志输出导致线程阻塞 | 请调高日志输出级别减少日志输出或检查磁盘剩余空间是否不足 日志级别请参见:日志简介 |
系统内存释放时间过长 | 如果使用的堆内内存大于等于64G时:请将堆内内存调整至小于64g的数值 如果使用的堆内内存小于64G时:建议更换使用更高性能的CPU |
3. 宕机工具使用前提
如需使用第四章的宕机处理功能,必须确保「运行检测」的每一项都符合要求。
系统需要满足一些条件,才能保证宕机自动处理工具的正常运行。因此工程启动后,会先对端口状态、JDK环境、堆外内存、部署情况进行检测。
检测有问题则提醒用户做相应修改或者禁用宕机功能,无问题则持续稳定运行。如下图所示:
「运行检测」每项对应的检查内容如下表所示:
注:若检测结果为优,则提示「此项配置良好,无需调整」。
序号 | 检查项 | 检测出问题标准 | 修改建议 |
---|---|---|---|
1 | 操作系统 | 当前系统非 Windows/Linux 系统 | 建议使用 Linux 系统以保证宕机自动处理工具稳定运行 此状况下,将不进行下面的四项检查 |
2 | 端口 | 12100端口状态异常(端口未开启或被占用) | 建议开放 12100 端口或设置其他端口以保证系统正常运行 端口设置请参考本文 4.6 节 |
3 | JDK | 1)工程中有 非 Oracle jre 的 tools.jar,且工程中未配置 JDK(系统配置JDK有问题) 2)工程中无 tools.jar,且工程中未配置 JDK(系统配置JDK有问题) | 建议增加系统 JDK 配置/ tools.jar 设置以保证系统正常运行 JDK 和 tools.jar 设置请参考:Linux 下 Tomcat 服务器独立部署 |
4 | 堆外内存 | 堆外内存不足 | 强烈建议物理机总内存减去系统所在容器使用内存不小于10GB |
5 | 部署方式 | 非 Tomcat 容器部署 | 建议使用 Tomcat 容器部署 Tomcat 部署请参考:Tomcat 服务器部署 |
当监测到操作系统、端口、JDK、堆外内存影响功能使用时,会通过「平台消息」和平台右下角「弹窗消息」提醒用户。
点击「处理」即可跳转到跳转到「宕机处理」平台配置页面,从而对其进行相应的处理。如下图所示:
消息提醒内容为:当前宕机自动处理工具不可用,为保证功能正常运行,建议你点击处理查看详情。
4. 宕机处理
如需使用 「宕机处理」功能,必须确保第三章「运行检测」的每一项都符合要求。
用户可以在「宕机处理」位置做一些配置设置,可设置的项为:宕机自动处理、自动导出内存堆栈、宕机自动重启、宕机通知、端口设置。如下图所示:
以下所有设置修改后需点击「保存」按钮才会生效。
4.1 宕机自动处理
使用说明:
开启该按钮,才支持进行下方功能的配置,否则全部不可用。
此开关默认开启。
使用前提:
在工作时段(6:00-23:00),当应用主进程关闭5分钟后,若宕机自动处理无法成功重启工程,则该工具跟随关闭。
在非工作时段(0:00-6:00,23:00-24:00),即使应用主进程关闭,宕机自动处理工具也不会跟随关闭。
4.2 自动导出内存堆栈
使用说明:
开关开启后,当发生宕机时会自动导出宕机日志。
支持导出的宕机日志内容包括:堆栈、histo、dump
导出位置为:宕机节点所在服务器下%Tomcat%\logs\FineLog\日期文件夹内
注:开启后自动导出宕机日志。如果担心dump导出时间长影响性能,可只选择导出堆栈和histo日志。
使用前提:
若「宕机自动处理」未开启,此项灰化处理,不能编辑修改。
若「宕机自动处理」开启,此项默认开启。
4.3 宕机自动重启
使用说明:
开启后,当高负载导致宕机时,会自动重启工程。
使用前提:
1)开启「宕机自动处理」
若「宕机自动处理」未开启,此项灰化处理,不能编辑修改。
若「宕机自动处理」开启,此项默认关闭。
2)系统情况
开关开启时,会对当前系统情况做检测。检测是否为 Windows 操作系统,是否为 Windows 服务形式。
若系统为 Windows 操作系统且为 Windows 服务形式,弹窗提示:该功能暂不支持当前系统。如下图所示:
点击确定和关闭按钮后弹窗关闭,开关不开启。
若系统为 Windows 操作系统且非Windows 服务形式,弹窗提示:当前系统可能会存在重启失败。如下图所示:
点击确认或关闭按钮后关闭弹窗,开关开启。
4.4 进程自动恢复
使用说明:
开启后,管理员可设置功能生效时间段。在指定时间段内,当应用进程消失时,会自动重启工程。
使用前提:
1)开启「宕机自动处理」
若「宕机自动处理」未开启,此项灰化处理,不能编辑修改。
若「宕机自动处理」开启,此项默认关闭。
2)系统情况
开关开启时,会对当前系统情况做检测。检测是否为 Windows 操作系统,是否为 Windows 服务形式。
若系统为 Windows 操作系统且为 Windows 服务形式,弹窗提示:该功能暂不支持当前系统。如下图所示:
点击确定和关闭按钮后弹窗关闭,开关不开启。
若系统为 Windows 操作系统且非Windows 服务形式,弹窗提示:当前系统可能会存在重启失败。如下图所示:
点击确认或关闭按钮后关闭弹窗,开关开启。
4.5 宕机通知
若「宕机自动处理」未开启,此项灰化处理,不能编辑修改;若「宕机自动处理」开启,此项默认关闭,开启后,可配置短信提醒、平台消息提醒、邮箱提醒,当发生宕机时会按配置的通知方式通知到用户。
4.6 端口设置
使用说明:
支持用户设置宕机处理工具占用的端口,默认的端口为 12100。
端口号范围要在1024 到 65535 之间,否则「宕机处理工具」无法启动,「宕机处理」页面无法打开。
使用前提:
若「宕机自动处理」未开启,此项灰化处理,不能编辑修改。
若「宕机自动处理」开启,默认的端口为 12100。
输入新的端口号后,点击「测试」,若新的端口号存在异常,则弹窗提示:端口异常,请重新设置。如下图所示:
若端口无异常,则弹窗提示:端口可用,保存后宕机自动处理工具将在新端口重启。如下图所示:
5. 内存堆栈导出记录
记录自动生成 DUMP 文件记录。
包括导出的导出内容、开始时间、时长、是否成功、如果失败,失败的原因等。如下图所示:
注:仅读取最近一个月的宕机处理记录。
6. 服务器重启记录
记录服务器重启的记录。
包括重启的开始时间、时长、是否成功、如果失败,失败的原因等。如下图所示:
注:仅读取最近一个月的宕机处理记录。