优化GeoServer的运行——GeoServer研究随笔二
GeoServer运行优化可以在几个层次展开,1、硬件、操作系统层次;2、java运行环境层次;3、应用服务器层次;4、空间数据组织管理层次。
硬件当然是内存越多越好,CPU运行效率越高、CPU数量越多越好。java程序一般是比较消耗内存的,GeoServer管理大量空间和属性数据更增加了内存的使用量。但是内存使用也有限制,windows程序的4G进程空间内存分配是操作系统占用2G,应用程序2G;linux程序的分配是操作系统1G,应用程序3G,所以,一般linux上Java程序的堆栈最大值可以比Windows大。CPU数量多则可以充分发挥Java多线程运行的优势,CPU运行效率高则计算速度快,对于GIS需要大量的空间运算来说,能显著提高用户的响应。如果使用WMS服务即时获取图片,性能优异的显卡能很好的提高地图的渲染速度。
Java运行环境,则可以参考GeoServer文档,http://docs.geoserver.org/1.7.4/user/production/container.html#optimize-your-jvm,配置Java虚拟机,-server按服务器模式运行,预编译字节码和优化字节码;-Xmx1024M-Xms48m,设置最小、最大堆栈,建议物理内存允许的条件下,设置尽可能大的堆栈;-XX:SoftRefLRUPolicyMSPerMB=36000,尽量延缓软引用缓存对象被垃圾回收;-XX:MaxPermSize=128m,增加Java类自身数据描述对象的存储空间,因GeoServer涉及到的类相对多,加之存身的容器(Tomcat等)也有很多其他类;-XX:XX:+UseParallelGC,开启并行垃圾回收。
应用服务器层次的优化,涉及如下方面:GeoServer所在的容器、GeoServer的服务策略设置、可以使用的缓存以及日志输出等方面。Tomcat、Jetty等分别有不同的优化方案,可以参阅相关文档;服务策略设置可以是:SPEED BUFFER File PARTIAL-BUFFER,可以在web.xml中设置,SPEED是最快的策略;可以使用的缓存则包括GeoWebCache、TileCache等,可以参阅相关文档,获得详细的配置和集成说明;日志则输出越多,服务响应就越慢。
GeoServer使用GeoTools工具包实现相关WMS、WFS等服务,GeoTools则使用JTS作为其空间对象模型,空间数据的内存缓存以及空间索引的使用则可以显著的提高服务的性能。
转载自:https://blog.csdn.net/sxausgyy/article/details/8119363