1.查看服务器CPU使用情况:
a.在Windows中使用任务管理器可以查看是否Java进程占用大量CPU:
b.在Unix/Linux环境上使用top或topas命令获取:
2.若CPU占用并不是非常大则表示可能Smartbi服务器处于死锁状态,可以通过打印线程堆栈并反馈以解决问题,参考Wiki文档:如何在系统无响应时打印线程信息
3.若CPU占用非常大,则有可能是内存不足导致的,或Smartbi在某些情况下死循环导致的,除上述第2点外还需要以下的信息
4.启动参数
a.通过jps或netstat获取Java进程号,参考Wiki:如何在系统无响应时打印线程信息
b.在JDK的bin目录中运行【jinfo 进程号】
c.查看最后VM Flags段查看参数-Xmx的值,确保已经设置一个足够大的值,尽量使用全部的物理内存
5.GC参数
a.在JDK的bin目录中运行【jstat -gcutil 进程号 5000 1000】
b.若最后一段GCT段(GC所花费的总时间)在持续快速增加则表示服务器的内存已经不足,若只是少量增加是正常现象:
6.堆Dump文件
b. 反馈文件以跟踪问题
c. 若条件允许,生成整个堆Dump文件【jmap -dump:live,format=b,file=进程号.bin 进程号】
d. 该文件非常大,与Java进程的运行内存一样的大,必须压缩以后再反馈
7. 反馈以上的信息有助于解决系统无响应的问题。