一、问题
面对各种软硬件环境,面对各种空间数据,面对各种服务调用,面对如此种种,坚挺的iServer也不免会出现异常,甚至崩溃;
今天不讨论造成异常和崩溃的原因,只想说一下面对异常和崩溃我们能做点什么,如何快速排查和定位问题:日志!日志!日志!
二、办法
收集软硬件环境信息
- 操作系统及版本(比如windows server 2016)
- iServer版本(比如iServer win64 10.2.1)
- 服务器信息:物理机/虚拟机,内存,CPU
收集日志
一般收集iServer日志和组件日志即可,有崩溃现象时可以收集崩溃日志,以及查看系统日志
- iServer日志:..\supermap-iserver-10.2.1-windows-x64-deploy\logs
- 组件日志:..\supermap-iserver-10.2.1-windows-x64-deploy\support\objectsjava\bin\log
- 崩溃日志(hs_err开头,或者dump文件):..\supermap-iserver-10.2.1-windows-x64-deploy\bin
- 系统日志:查看崩溃时间点的application-error类型日志
开启日志
iServer默认开启日志信息较少,当排查异常时可开启debug日志,以及开启tomcat访问日志
- iServer开启debug日志:..\supermap-iserver-10.2.1-windows-x64-deploy\webapps\iserver\WEB-INF\iserver-log4j.properties
- tomcat开启访问日志:..\supermap-iserver-10.2.1-windows-x64-deploy\conf\server.xml
- 开启崩溃日志:..\supermap-iserver-10.2.1-windows-x64-deploy\bin\catalina.bat
- 重启iServer,修复完成后重启iServer
稳定复现
前面已经收集了一波日志,并开启了更多日志收集,下一步就是复现问题进一步收集日志信息。问题复现有时很简单,有时很难,需要耐心和策略。
1.总结问题出现规律:出现问题的时间,调用了什么服务,调用服务的频次等
2.服务拆分逐步缩小范围:
①比如将扩展服务与原生服务拆分部署,可以定位是哪类服务出了问题,扩展服务多是用户自行开发的,是重点怀疑对象
②原生服务可进一步拆分,比如地图服务、数据服务、分析服务拆分
3.重点怀疑对象测试复现,通过人工、jmeter、postman工具等,有的放矢,复现锁定问题
三、后记
上述是排查锁定问题的一些建议,目的是为了让大家快速明确的定位问题,知道了问题是啥,如何产生的,解决起来自然就简单了。
如果问题依然不能定位,那就呼叫炮火支援!!!