WMS 图层在 Open 图层 3 中渲染缓慢?

WMS layers rendering slow in Open layers 3?

我有 Geoserver 2.11.2、PostgreSQL 9.5、开放层 3 和 Tomcat 8 都安装在 Ubuntu 16.4 Azure 云虚拟 machine.I 也启用了 GeoWebCache 但仍然是 WMS 层渲染速度很慢(15 到 16 秒)。请找到 this。有什么想法可以提高比当前 web-tool 速度更快的速度,谢谢。

总的来说,这听起来像是配置错误。 GeoServer 文档 (http://docs.geoserver.org/stable/en/user/production/) about running in production. From GeoSolutions, there is some training materials (http://geoserver.geo-solutions.it/edu/en/enterprise/index.html) and talks (https://www.slideshare.net/geosolutions/geoserver-in-production-we-do-it-here-is-how-foss4g-2016) 中有一些优秀的资源,其中介绍了数据准备的常用技术、JVM 选项以及可能对某些人有所帮助的其他注意事项。

作为一个特别的标注,我强烈建议 Marlin (https://github.com/bourgesl/marlin-renderer/wiki/How-to-use). Its use in GeoServer can help immensely with concurrent rendering (http://www.geo-solutions.it/blog/developerss-corner-achieving-extreme-geoserver-scalability-with-the-new-marlin-vector-rasterizer/)。

可能值得确保安装了 PostGIS 并且您的数据具有空间索引。调整 PostGIS 是一个单独的主题。

一旦数据准备好并编制索引并且 Marlin 启动并且 运行,可能值得为 GWC 缓存播种。有了它,您的应用程序将只为粗缩放级别提供预烘焙的图块,而且应该更快捷。

看起来您在地图中打开了很多层。仅放大一次就触发了总共 700 个单独的图块请求,其中大部分请求发送到您的 GeoServer。我不认为你的主要问题是你的地理服务器(尽管使用其他答案建议调整它总是一个好主意),我认为你的主要问题只是吞吐量。

大多数浏览器都有 how many simultaneous requests can be sent to the same domain 的限制(使用 http 1.1 时),一旦达到该限制,所有其他请求都会排队,直到前面的请求完成。我认为那是你的问题,你的服务器正在尽可能快地处理请求,但是请求太多以至于它根本无法以你期望的速度为它们提供服务。

我强烈建议您考虑减少默认加载的层数,或者实施某种缩放限制,以便某些层在不同的缩放级别关闭。您甚至可以考虑将多个图层合并为一个图层,并可能使用 GeoServers CQL filtering 来更改显示的内容。