首页 / 浏览问题 / 云GIS / 问题详情
iServer10.2.1控制台上显示的警告内容
260EXP 2024年06月03日
周末我将iServer从10.1.2升级到了10.2.1,今天看到控制台上报错“GC overhead limit exceed”以及无法连接特定数据源(每分钟间隔)的消息

之后我删除了工作空间里无法连接的数据源,重启了iServer后,无法连接特定数据源的消息就没有出现在控制台上了

但之后,没过多久就又出现了没见过的新消息,内容如下:

2024-6-3 16:19:27 - WARN - The configured limit of 1,000 object references was reached while attempting to calculate the size of the object graph. Severe performance degradation could occur if the sizing operation continues. This can be avoided by setting the CacheManger or Cache <sizeOfPolicy> elements maxDepthExceededBehavior to "abort" or adding stop points with @IgnoreSizeOf annotations. If performance degradation is NOT an issue at the configured limit, raise the limit value using the CacheManager or Cache <sizeOfPolicy> elements maxDepth attribute. For more information, see the Ehcache configuration documentation.

查了一下是在尝试计算对象图的大小时,达到了配置的1,000个对象引用的限制。

请问为什么以前10.1.2不会报这个警告,然后报了这个警告后是否需要进行某些优化处理?

1个回答

您好,

1.GC overhead limit exceed 表示内存占用过大,建议调整JVM的内存大小, 方法:编辑iServer安装目录\bin目录下的catalina.bat/sh,将“set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx1536m -Xss512k”里的Xms和Xmx设置为机器剩余内存的1/4~1/3左右,设置完成后重启iServer生效

2.WARN的信息是由于数据太大请求过多导致的,可以切瓦片后试一试,之前10.1.2不会报这个警告是由于访问的是Web 请求缓存当客户端再次发出相同的请求时,服务端会直接把该缓存结果返回,从而提高服务性能

希望能够帮到您
280EXP 2024年06月03日
感谢解答
您好,关于第二点我想请问一下

第二点我请求的图层是一个复合的图层,每次会根据用户在网页上选择的图层组合不同,显示出对应的图层

var setLayerStatusParameters = new SuperMap.REST.SetLayerStatusParameters({

    layerStatusList: layersStatus

});

var setLayerStatusService = new SuperMap.REST.SetLayerStatusService(roadFilterUrl, {     

    eventListeners: { "processCompleted": setFilterLayerCompleted }

});

setLayerStatusService.processAsync(setLayerStatusParameters);
请问这样用地图的话做瓦片能够帮助解决上面的警告吗?
用户缺陷不稳定复现,已添加联系方式,待缺陷复现时解决
...