(本文档仅供参考)

一般出现类似于服务器CPU 和内存一直在98%-100%,后台报锁死错误,一直卡住,无法开发报表的情况

一、可能性分析

      

【系统选项】--》【查询设置】–》【内存数据库最大返回行数】及【内存数据库最大返回单元格数】也不能设置过大,如果设置很大,往内存数据库加载的数据量就很大,会占用服务器的内存,造成内存溢出问题。

 其中【内存数据库最大返回单元格数】=内存数据库最大返回行数*列字段

 

 

1.3 原因3

       灵活分析引用的数据集设置了Excel模板,然后进行大数据量导出,详细说明请查看wiki文档:https://history.wiki.smartbi.com.cn/pages/viewpage.action?pageId=46071847

1.4 原因4

       内存溢出,代码逻辑存在问题或者服务器内存设置太小不满足当前系统用户的使用,这个是需要采集信息发回具体分析的,具体可参考现象三采集信息。


为了定位分析具体原因,通常需要采集有用的信息辅助分析问题,因此需要我们根据实际现象来采集信息

二、信息采集

2.1  现象一:服务器可正常访问,但是后台显示CPU占用过高

分析:请访问listthreads.jsp界面,如: http://192.168.1.10:17300/smartbi/vision/monitor/listthreads.jsp 

(需要把IP和端口号 修改成现场的服务器IP和端口号),加载此界面完成后Ctrl+S保存网页内容发回分析,可分析是哪个线程占用过高的CPU:

 

2.2  现象二:如果服务器没有宕机,只是报表响应时间长。

信息收集:打开CPU采样,录制报表打开的过程,可参考文档:系统监控-性能(CPU采样)

2.3  现象三:所有用户无法访问服务器,即服务器宕机了。


2.3.1  服务器已经重启的情况下,先拿到以下信息初步定位分析下问题。

1、导出系统日志,以管理员登录系统后,在搜索栏上输入【导出系统日志】进行导出:

 

             

2、进入【会话管理】–》【会话分析】–>打开【最大会话分析】界面,选择宕机前后时间段,查询数据,导出Excel文件,可以通过【空闲内存数】大概推测是否是内存溢出导致的,如果【空闲内存数】很少,说明宕机原因就是因为服务器内存溢出导致的:

注意:时间间隔设置 1分钟

通过会话管理确认内存消耗比较多的时间段,然后打开【操作日志报表】查看当前时间段用户做了什么操作:


 检查当前服务器的内存配置大小,可以通过【系统监控】--》【概述】或者【导出系统日志】的【version.txt】文件查看:

 

从smartbi系统导出的【系统日志】,用压缩工具打开,找到version.txt查看:

  

此时若是服务器内存配置的比较小,需要参照基本的服务器要求:系统环境要求 调整服务器内存大小 应用服务器JVM参数配置


2.3.2  服务器尚未重启的情况下,配置采集以下信息后再反馈发回分析。

建议现场在服务器宕机发生的时候同时打印堆dump信息发回分析。

1、拿回服务器日志信息,包括所有节点smartbi.log以及服务器自身的logs。(对于服务器日志的获取可参考wiki文档:https://history.wiki.smartbi.com.cn/pages/viewpage.action?pageId=27000922,根据现场的服务器拿到对应的服务器日志)

2、进行打印线程信息,可参考wiki文档(根据具体的服务器进行线程信息和堆dump文件的打印): https://history.wiki.smartbi.com.cn/pages/viewpage.action?pageId=29854061 

  

 注:堆dump文件较大,也可以上传到网盘上,提供下载链接。


2.3.3  特殊情况

1、环境突然宕机,且java进程不在了,服务器是部署到linux环境。

     需要看是否有加jvm参数-Djava.awt.headless=true,若没有,需添加此参数,wiki:使用Linux系统部署的Smatbi服务突然无法启动或进程消失

2、查询星环数据库导致java进程消失。

     添加jvm参数-DANTLR_DO_NOT_EXIT=true,wiki:大数据库驱动包引起服务器宕机、或系统退出问题解决方案( -DANTLR_DO_NOT_EXIT=true)

3、java进程消失,且进程消失当天在应用服务器路径下(如Tomcat的bin目录)生成了hs_err_pid进程号.log文件,如下图:       

   

此时需要获取当天的hs_err_pid进程号.log文件进行分析。

2.4 现象四:登录界面一直在转圈,或者操作系统会出现卡顿的现象。

信息采集:如果一直在转圈,先尝试浏览器隐身模式测试,如果仍然一直转圈,可以查看浏览器F12是否有脚本错误,如果没有脚本错误或者操作系统很卡,则需要在出现问题的时候录制charles发回分析:Charles