一、现象
开发的系统使用openlayer通过wms方式请求geoserver的地图,开发环境geoserver安装在windows上,使用默认设置,一切都正常。
系统部署到客户的linux上之后,发现地图显示特别缓慢。
二、调查
1、通过开发工具发现pending时间特别长。
2、geoserver的设置和windows上的设置也都一样。
3、发现单独加载其他图层,比如zxy、geojson方式都不存在卡的问题。
4、当zxy与wms同时存在时,zxy也存在pending时间特长的现象。但是在浏览器地址直接打开zxy时,返回是非常快的,而直接打开wms请求时,返回图片时间就超长。
所以,问题基本定位就是geoserver的问题。
三、对策
1、对图层进行切片后,尝试使用wmts方式请求,速度似乎也没有问题。
2、真正的wms卡慢的原因还是没有定位。
3、发现在geoserver的缓存设置中“Caching defaults”-“Provided Services”中的“Enable direct integration with GeoServer WMS”选项,没有勾选。
而此项设置,就是直接把GeoWebCache集成到geoserver的设置。把此项选中,发现在浏览器直接请求wms时,就能够快速的返回。
那么为什么windows上没有勾选也没有问题呢?怀疑是windows版本可能实现不一致,开启了直接缓存导致的。关键可能是windows原因,wms请求卡,会导致其他图层的请求也会卡。容易造成调查方向走偏。